루프(반복문)는 특정 문장 또는 문장 블록을 여러 번 반복해서 실행할 수 있도록 해주는 프로그래밍 구조입니다. 조건에 따라 같은 작업을 효율적으로 처리해야 할 때 필수적으로 사용되며, C#은 다양한 형태의 반복문을 제공합니다.
C#에서 지원하는 주요 반복문
| 번호 | 반복문 종류 및 설명 |
|---|---|
| 1 | while 루프 주어진 조건이 참(true)인 동안 문장 또는 문장 블록을 계속 반복 실행합니다. 루프 본문을 실행하기 전에 조건을 먼저 검사하므로, 처음부터 조건이 거짓이라면 본문이 한 번도 실행되지 않을 수 있습니다. |
| 2 | for 루프 일련의 문장을 정해진 횟수만큼 반복 실행합니다. 초기화, 조건 검사, 증감식을 한 줄에 작성할 수 있어 루프 변수를 관리하는 코드가 간결해지는 장점이 있습니다. |
| 3 | do...while 루프 while 문과 유사하지만, 조건을 루프 본문 실행 후에 검사합니다. 따라서 조건과 관계없이 루프 본문이 최소 한 번은 반드시 실행됩니다. |
이 외에도 C#에서는 컬렉션이나 배열의 요소를 순회할 때 매우 편리한 foreach 루프를 사용할 수 있습니다. 아래 예제는 bool 배열을 BitArray로 변환한 뒤, foreach를 이용해 각 요소를 출력하는 코드입니다.
foreach 루프 예제
using System;
using System.Collections;
class Demo {
static void Main() {
bool[] arr = new bool[5];
arr[0] = true;
arr[1] = true;
arr[2] = false;
arr[3] = false;
BitArray bArr = new BitArray(arr);
foreach (bool b in bArr) {
Console.WriteLine(b);
}
bool str = arr[1];
Console.WriteLine("Value of 2nd element:" + str);
}
}
실행 결과
True True False False False Value of 2nd element:True
위 예제에서 foreach 루프는 BitArray의 모든 비트 값을 하나씩 순회하며 출력합니다. 인덱스를 직접 다룰 필요 없이 컬렉션의 요소에 안전하게 접근할 수 있어, 배열이나 리스트를 처리할 때 코드의 가독성과 안정성을 크게 높여 줍니다.
반복문 선택 가이드
- while: 반복 횟수가 정해져 있지 않고, 조건 충족 여부에 따라 반복을 결정해야 할 때 적합합니다.
- for: 반복 횟수가 명확하게 정해져 있을 때 가장 깔끔하게 사용할 수 있습니다.
- do...while: 메뉴 입력 처리처럼 최소 한 번은 반드시 실행되어야 하는 경우에 유용합니다.
- foreach: 배열이나 컬렉션의 모든 요소를 순회할 때 가장 간결하고 안전한 방법입니다.