C#은 다음 네 가지의 반복문을 제공합니다.
- while
- do while
- for
- foreach
while
while ( 조건식 )
{
반복실행할_코드
}
조건식은 논리 형식(bool 형식)입니다. 조건식이 참(true)인 동안 코드를 반복 실행합니다.
int a = 10;
while ( a > 0 )
{
Console.WriteLine($"a : {a--}");
}
위 코드는 반복 실행하는 while 문의 예입니다.
while (true)
반복_실행할_코드
만약에 조건식이 항상 참이면 무한 반복 실행됩니다.
do while
do
{
// 이 코드 블럭의 최초 한 번은 무조건 실행
반복실행할_코드_블럭
}
while( 조건식 );
do while 문은 조건식을 평가하기 전에 무조건 처음 한 번은 코드를 실행하고 끝에 세미클론을 붙여줘야 하는 점이 while 문과 다릅니다.
int a = 10;
do
{
Console.WriteLine( a );
a -= 2;
}
while ( a > 10 );
위 코드는 do while 문의 특징을 잘 보여줍니다.
for
for( 초기화식; 조건식; 반복식; )
{
반복실행할_코드;
}
조건식이 참인 동안 코드를 반복 실행하지만, while 문보다 반복을 더 정교하게 제어할 수 있습니다.
- 초기화식
반복을 실행하기 전에 가장 먼저, 딱 한 번만 실행되는 코드입니다. for 반복문에서 사용할 변수 등을 이곳에서 초기화합니다.
- 조건식
반복을 계속 수행할지 결정하는 식입니다. 이 조건식의 결과가 false가 되면 반복을 중단합니다.
- 반복식
반복 실행할 코드가 끝날 때마다 실행됩니다. 주로 여기에서 조건식에서 사용하는 변수의 값을 조정합니다. 반복식이 실행된 후에는 조건식이 실행되어 반복을 계속 진행할지를 판단합니다.
for( int i=0; i<5; i++ )
{
Console.WriteLine( i );
}
위 코드는 for 문의 가장 기본적인 코드입니다.
for 문이 읽히는 순서는 대략 이렇습니다. 초기화식 -> [조건식 -> 반복 실행할 코드 -> 반복식](조건식의 결과가 false 일 때까지 반복되고 true 면 반복 실행할 코드가 실행됩니다)
for( ; ; )
반복_실행할_코드
만약에 for 문의 매개변수에 아무 것도 넣지 않으면 무한 반복 코드를 만들 수 있습니다.
foreach
foreach는 배열 또는 컬렉션을 순회하며 각 데이터 요소에 차례대로 접근하도록 해줍니다. 배열 또는 컬렉션의 끝에 도달하면 자동으로 반복이 종료됩니다.
foreach(데이터형식 변수명 in 배열_또는_컬렉션)
{
코드
}
foreach 문이 한 번 반복을 수행할 때마다 배열_또는_컬렉션의 요소를 차례대로 순회하면서 in 키워드 앞에 있는 변수에 담아줍니다.
int[] arr = new int[]{0, 1, 2, 3, 4};
foreach (int a in arr)
{
Console.WriteLine(a);
}
foreach 문의 사용 예입니다.