C# 반복문 완전 정복: for, while, do-while, 중첩 루프와 제어문
같은 코드 블록을 여러 번 실행해야 할 상황이 있습니다. 일반적으로 문장은 순차적으로 실행되지만, 프로그래밍 언어는 더 복잡한 실행 경로를 위한 제어 구조를 제공합니다.
반복문(Loop Statement)은 문장이나 문장 그룹을 여러 번 실행할 수 있게 하며, 일반적인 형태는 다음과 같습니다.
C# 반복문 종류
| 번호 | 반복문 타입 및 설명 |
| 1 | while 루프 조건이 참인 동안 문장/문장 그룹을 반복합니다. 루프 본문 실행 전 조건을 테스트합니다. |
| 2 | for 루프 문장 시퀀스를 여러 번 실행하며, 루프 변수 관리 코드를 간소화합니다. |
| 3 | do...while 루프 while 문과 유사하지만, 루프 본문 끝에서 조건을 테스트합니다(최소 1회 실행 보장). |
| 4 | 중첩 루프 while, for, do...while 루프 안에 또 다른 루프를 사용할 수 있습니다. |
반복문 제어 문장 (Loop Control Statements)
실행 흐름을 정상 순서에서 변경합니다. 범위를 벗어날 때 해당 범위에서 생성된 모든 자동 객체가 소멸됩니다.
| 번호 | 제어 문장 및 설명 |
| 1 | break 문 루프 또는 switch 문을 종료하고, 바로 다음 문장으로 실행을 이동시킵니다. |
| 2 | continue 문 루프 본문의 나머지 부분을 건너뛰고 조건을 즉시 재테스트하여 다음 반복으로 진행합니다. |
무한 루프 (Infinite Loop)
조건이 절대 거짓이 되지 않으면 무한 루프가 됩니다. for 루프가 전통적으로 이 목적에 사용됩니다. for 루프의 세 표현식(초기화, 조건, 증감) 모두 선택 사항이므로, 조건식을 비워두면 무한 루프가 됩니다.
무한 루프 예제
using System;
namespace Loops
{
class Program
{
static void Main(string[] args)
{
for (; ; ) // 조건식 없음 → 무한 루프
{
Console.WriteLine("Hey! I am Trapped");
}
}
}
}
조건식이 없으면 true로 간주됩니다. 초기화와 증감 표현식은 있을 수 있지만, 프로그래머들은 무한 루프를 명확히 나타내기 위해 for(;;) 구문을 흔히 사용합니다.
각 반복문 기본 구조 비교
| 반복문 | 구조 | 특징 |
| while | while (조건) { ... } | 선조건 검사, 0회 이상 실행 |
| do-while | do { ... } while (조건); | 후조건 검사, 1회 이상 실행 |
| for | for (초기화; 조건; 증감) { ... } | 카운터 기반 반복에 적합 |