for문은 C#의 반복문 중 하나로, 특정 조건을 만족할 때까지 코드를 반복하여 실행하는 구조이다. switch와 대조적으로, 반복 횟수가 정해져 있을 때 주로 사용한다.
for (초기식; 조건식; 증감식)
{
// 반복할 코드
}
초기식 → 반복 변수 선언 및 초기화 (한 번만 실행됨)조건식 → true일 때만 반복 실행 (거짓이 되면 반복 종료)증감식 → 반복 변수를 증가/감소하여 조건을 만족할 수 있도록 조정for (int i = 0; i < 5; i++)
{
Console.WriteLine($"반복 횟수: {i}");
}
// 반복 횟수: 0
// 반복 횟수: 1
// 반복 횟수: 2
// 반복 횟수: 3
// 반복 횟수: 4
int[] numbers = { 10, 20, 30, 40, 50 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i]);
}
/*
10
20
30
40
50
*/
numbers.Length를 사용하여 배열 크기만큼 반복한다.
for (int i = 1; i <= 10; i++)
{
if (i == 5)
{
Console.WriteLine("반복 중단!");
break;
}
Console.WriteLine(i);
}
/*
1
2
3
4
반복 중단!
*/
i == 5일 때 break; 실행 → 반복문 즉시 종료한다.
for (int i = 1; i <= 5; i++)
{
if (i == 3)
{
Console.WriteLine("건너뛰기!");
continue; // 다음 반복으로 건너뛰기
}
Console.WriteLine(i);
}
/*
1
2
건너뛰기!
4
5
*/
i == 3이면 continue; 실행 → Console.WriteLine(i);를 실행하지 않고 다음 반복으로 이동한다.
for문 안에 또 다른 for문을 포함할 수 있다.for (int i = 2; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
Console.WriteLine($"{i} x {j} = {i * j}");
}
Console.WriteLine(); // 줄 바꿈
}
/*
2 x 1 = 2
2 x 2 = 4
...
9 x 8 = 72
9 x 9 = 81
*/
int 대신 var로 선언 가능.for (var i = 0; i < 5; i++)
{
Console.WriteLine(i);
}
C#에서는 위처럼 var를 사용할 수 있지만, 명확한 타입을 지정하는 것이 좋다.
foreach로 가독성 있게 깔끔하게 만들 수 있다.// 기존 for문
int[] numbers = { 10, 20, 30, 40, 50 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i]);
}
// 더 간결한 foreach
foreach (var number in numbers)
{
Console.WriteLine(number);
}
foreach를 사용하면 가독성이 더 좋다.index가 필요한 경우 for 문을 사용한다.C#에서는 LINQ(Language-Intergrated Query)를 사용하여 for문을 더 깔끔하게 변환 가능하다.
// 기존 for문
int[] numbers = { 1, 2, 3, 4, 5 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i] * 2);
}
// LINQ 활용
int[] numbers = { 1, 2, 3, 4, 5 };
numbers.ToList().ForEach(n => Console.WriteLine(n * 2));
| 기본 for 문 | 일정 횟수 반복 | for (int i = 0; i < 5; i++) { ... } |
|---|---|---|
| 배열 순회 | 배열 요소 출력 | for (int i = 0; i < arr.Length; i++) |
| break 사용 | 특정 조건에서 반복 중단 | if (x == 5) break; |
| continue 사용 | 특정 조건에서 다음 반복으로 건너뜀 | if (x == 3) continue; |
| 중첩 for | 2중 루프 활용 | for (int i=0; i<3; i++) { for (int j=0; j<3; j++) } |
| foreach 변환 | 배열 순회 대체 가능 | foreach (var item in arr) { ... } |
| LINQ 활용 | for 문을 간결하게 변환 | arr.ToList().ForEach(x => Console.WriteLine(x)); |