C# 반복문 사용하기: for문
조건문이 코드의 실행 흐름을 제어하는 방법을 제공한다면, 반복문은 코드를 여러 번 실행하도록 하는 방법을 제공합니다. 이번 글에서는 C#에서 가장 널리 사용되는 반복문 중 하나인 for문에 대해 알아보겠습니다.
for문
먼저, for문에 대해 알아보겠습니다. for문은 지정된 횟수만큼 코드를 반복 실행하는 데 사용되는 제어 구조입니다. 이 구조는 변수의 초기화, 반복 조건, 그리고 각 반복 후에 실행되는 표현식(일반적으로 반복 변수의 증감)이 포함되어 있습니다.
1. 구문
for (초기화; 조건; 증감)
{
// 조건이 참일 때 실행할 코드
}
2. 예시
1. 1에서 10까지 홀수만 출력하기
for (int i = 1; i <= 10; i++) // 1부터 10까지 반복합니다.
{
if (i % 2 != 0) // i를 2로 나눈 나머지가 0이 아닐 경우(즉, 홀수인 경우)에만
{
Console.WriteLine(i); // i를 출력합니다.
}
}
// 출력
1
3
5
7
9
이 예시처럼 for문은 특정 범위 내에서 특정 조건을 만족하는 요소들만을 선택적으로 처리할 때 사용할 수 있습니다. 이를 이용하면 다양한 조건과 범위에 대한 반복 작업을 효과적으로 수행할 수 있습니다.
2. 중첩 for문을 이용한 구구단
중첩 for문은 for문 안에 또 다른 for문이 존재하는 구조를 말합니다. 이는 2차원적인 반복을 필요로 할 때 사용되며, 예를 들어, 구구단을 출력하는 경우에 사용할 수 있습니다.
for (int i = 2; i < 10; i++) // 2부터 9까지 반복합니다.
{
for (int j = 1; j < 10; j++) // 1부터 9까지 반복합니다.
{
Console.WriteLine($"{i} x {j} = {i * j}"); // i와 j의 곱을 출력합니다.
}
Console.WriteLine(); // 한 줄 띄우기 (구구단의 각 단을 구분하기 위함)
}
// 출력 예시 (전체 출력은 생략)
2 x 1 = 2
2 x 2 = 4
...
2 x 9 = 18
...
9 x 9 = 81
이 예시에서는 외부 for문이 2에서 9까지 반복하며, 내부 for문이 1에서 9까지 반복하면서 각각의 구구단을 출력합니다. 이렇게 출력하면 2단부터 9단까지의 구구단이 출력됩니다.
3. 무한 루프
for문은 무한 루프를 만드는 데도 사용될 수 있습니다. 반복 조건이 항상 참이면 루프는 끝나지 않습니다. 이것은 주의해서 사용해야 합니다. 아래 예시는 무한 루프를 만드는 코드입니다.
for (; ; ) // 조건문과 증감문을 생략하면 무한 반복문이 됩니다.
{
Console.WriteLine("이것은 무한루프 입니다.");
}
이 코드는 “이것은 무한루프 입니다.”를 무한히 출력합니다. 프로그램은 이 루프에서 벗어나지 못하므로, 이러한 코드는 실제 프로그램에서는 주의해서 사용해야 합니다.
추가로 for문은 배열이나 리스트의 모든 요소를 반복하는데도 자주 사용됩니다. 이에 대한 내용은 ‘C# 반복문 사용하기: foreach문’에서 자세히 다루도록 하겠습니다.
☞ for문은 정해진 횟수만큼 반복해야 하는 상황에서 가장 효과적입니다. 그러나 조건이 만족되는 동안 계속 반복해야 하는 상황에서는 while문이나 do~while문이 더 적합할 수 있습니다. C#에서 제공하는 다양한 반복문을 알고 있으면 각 상황에 가장 적합한 반복문을 선택하여 사용할 수 있습니다.
참고 자료
- Microsoft 공식 문서: C# for문 (https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/statements/iteration-statements)
함께 보면 좋은 이전 게시글
- C# 조건문 사용하기: if문, if~else문, 중첩 if문, else if문
- C# 기본 연산자 사용하기: 산술, 관계, 논리 연산자
- C# 기본 연산자 사용하기: 비교, 삼항, Null 조건/병합 연산자
- C# 부울과 문자형 자료형 사용하기: bool, char, string
- C# 변수와 상수 이해하기: 선언, 할당, 사용
이 글이 도움이 되셨다면 공유 부탁 드립니다.