반복문

강성현
∙∙조회 10

 

반복문이란?

같은 코드를 조건이 만족되는 동안 되풀이해 실행합니다.

 


1. while 문

조건이 참인 동안 블록을 되풀이합니다.

csharp
while(<조건>)
{
	<조건이 참인 동안 되풀이할 코드>
}

 


2. for 문

for문은 시작값, 조건, 증감 이 세가지가 한줄에 모여있는 반복문입니다.

csharp
   for (int i = 0; i <= 100; i++)
        {
            if (i % 2 == 0)
            {
                Console.WriteLine($"현재 숫자 : {i}");
            }
        }

 


3. do-while 문

while처럼 조건이 거짓이라면 블록이 실행되지 않는 것이 아닌

조건이 거짓이여도 한번은 실행하는 것이 do - while입니다.

 

문법 : do {<되풀이할 코드>} while (<조건>);

csharp
do
{
    // 최소 1회 수행
    // 로직 > 조건식 순으로 진행
    Console.WriteLine("do-while ");
} while (false);

 

csharp
int count = 10;

while (count < 3)  
{  
    Console.WriteLine("실행되지 않습니다.");  
    count++;  
}

do  
{  
    Console.WriteLine("한 번은 실행됩니다.");  
    count++;  
}  
while (count < 3);

4. foreach 문

데이터를 순회하며 읽어오거나 찾을 때 유용하게 사용하고,

하지만 "어떠한 몬스터가 몇번째 칸에 있는가" 를 알기엔 힘들고 그럴 경우엔 for문을 사용하는 것이 용이합니다.

 

문법 : foreach(<자료형><변수,인덱스> in <배열 혹은 자료구조>)

csharp
int[] arr = { 1, 2, 56, 26, 21, 98 };

foreach (int i in arr) 
{
    // 첫번째 루프 : i = arr[0];
    // 두번째 루프 : i = arr[1];
    // 세번째 루프 : i = arr[2];
    // ...
    i = 0; // 에러 : 데이터를 바꿀 수 없음
           // for문에서는 되지만 foreach에서는 안된다.
    Console.WriteLine(i);
}

 


5. break와 continue

Break는 반복문을 즉시 끝내고 밖으로 나갑니다.
Continue는 이번 반복 코드를 건너뛰고 다음 반복 회차로 넘어갑니다.

csharp
// 100이하의 짝수들만 출력하는 코드

int count = 0;
        
while(count <= 100)
{
    count ++;
    
    // count가 짝수일 때
    if (count % 2 == 0)
    {
        Console.WriteLine($"현재 숫자 : {count}");
    }
    
    // continue
    if (count % 3 == 0)
    {
        continue;
        // 3의 배수들은 "루프 1회 돌렸음"을 출력하지 않고 다음 반복코드 실행
    }
    
    // break
  	if (count % 50 == 0)
    {
    	break;
        // break 바로 아래에 있는 코드들도 다 건너뛰고 "반복문 끝" 출력
    }
    
    Console.WriteLine("루프 1회 돌렸음");
}
Console.WriteLine("반복문 끝");

 


6. 배열을 반복문으로 순회하기

csharp
string text = "abdfadfFADFASwefsdWEqQSgasd";
int count = 0;

// 대문자 S의 갯수 세기
for (int i = 0; i < text.Length; i++)
{
    if (text[i] == 'S')
    {
        count++;
    }

	Console.WriteLine(count); // 2
}

 

csharp
// 소문자를 대문자로 바꾸는 코드 
        
string text = "abcdEFGHijklMNOPqrstUVWXyz";
char[] textToChar = text.ToCharArray();
for (int i = 0; i < text.Length; i++)
{
    //  만약 소문자라면 대문자로 바꿔서 저장
    if ((int)text[i] > 96)
    {
        textToChar[i] = (char)((int)textToChar[i] - 32);
	}
}
Console.WriteLine(textToChar); // 출력 : ABCDEFGHIJKLMNOPQRSTUVWXYZ