C#의 for문은 다른 프로그래밍 언어와 크게 다르지 않은 매커니즘으로 돌아가지만, 중요한 요소가 몇 가지 있다.
for문은 다음과 같이 선언한다.
for (초기값, 반복 횟수, 증감 연산자) { 실행할 명령문}
보기만 해서는 뭔가 어려워보인다. 하지만 다음 코드를 보면 정말 쉬운 매커니즘이라는 걸 알 수 있다.
1
2
3
4
5
6
int[] a = new int[5] { 1, 2, 3, 4, 5 };
for (int i = 0; i < a.Length; i++)
{
Console.WriteLine("반복합니다~" + a[i]);
}
1, 2, 3, 4, 5가 들은 배열이 있다. 우리는 이 배열 안에서 for문을 돌릴 것이다.
for문 안에서 쓰일 임시 변수를 선언한다. 초기값은 0으로 정했다. 임시 변수 i는 a.Length 안에서 반복한다. 즉 i < 5까지 반복한다는 이야기다. 마지막으로 i를 1씩 증가시킨다.
콘솔 출력라인에는 메시지와 함께 현재의 배열 위치를 알려준다.
반복합니다~1 반복합니다~2 반복합니다~3 반복합니다~4 반복합니다~5
당연히 출력 결과는 다음과 같다.
하지만 이 for문에는 명확한 순서가 있다는 것을 눈치챘을 것이다. 이것을 눈치채지 못하면 for문을 쓰는 이유가 없게 된다.
i = 0으로 초기화 - 0부터 시작한다.
if (i < 5) { } - 5 미만이면 계속 반복한다.
명령문 실행
증감 연산자 실행 - i가 1 늘어난다.
그다음 4에서 2로 돌아가서 계속 반복하는 것이다.
i = 1이 되고, if 1 < 5 = true를 반환하니 다시 명령문을 실행, i는 +1하면 2가 되고, 이하 반복…
이 순서를 반드시 이해하고 있어야 한다.
foreach문은 보다 쉽다. 사용법은 다음과 같다.
foreach (데이터형식 임시변수이름 in 반복 가능한 객체) { 실행할 명령문 }
만약 당신이 Python을 한다면 이해가 쉬울 것이다. 반복 가능한 객체는 List와 같이 __iter__한 존재들이다. 다시 말해 반복문에서 빙글빙글 돌릴 수 있는, 객체가 하나가 아닌 여러개 있는 것이다.
이제 foreach문을 선언해보자.
1
2
3
4
5
6
int[] a = new int[5] { 1, 2, 3, 4, 5 };
foreach (int num in a)
{
Console.WriteLine(num);
}
출력 결과 당연히 1부터 5까지 순서대로 출력된다.