CSharp 반복문(Loop)

양승준·2025년 3월 29일

CSharp

목록 보기
8/20
post-thumbnail

반복문 종류

반복하는 구문 반복문에는 어떠한 것들이 있을?
반복문에는 while, do~while, for, foreach이 있다.


while문

조건이 true인 동안 반복을 수행하는 기본적인 반복문이다.

🧪 기본 코드

while(참 or 거짓)
{
    반복 할 내용
}

🧪 예제 코드

int eatApple = 0;

while (eatApple < 10)
{
    eatApple++;
    Console.WriteLine($"{eatApple}번째로 사과를 먹습니다.");
}

Console.WriteLine("사과 {0}개까지 먹어서 배가 부르다.. 꺼어억", eatApple);
  • 조건을 먼저 평가하고, 참일 때만 반복문 실행
  • 조건이 처음부터 false이면 한 번도 실행되지 않음

do ~ while문

조건과 상관없이 최소 1번은 실행되는 반복문이다.

🧪 기본 코드

do
{
    반복 할 내용
} while(참 or 거짓);

🧪 예제 코드

do
{
    eatApple++;
    Console.WriteLine($"일단은 {eatApple}번째로 사과를 먹습니다.");
} while (eatApple < 20);

Console.WriteLine("사과 {0}개까지 먹어서 배가 터지겠뜨아ㅏ....", eatApple);
  • 먼저 실행하고, 이후 조건을 확인
  • 조건이 false라도 최소 1회 실행 보장

for문

가장 일반적인 반복문. 초기화, 조건, 증감 모두 한 줄에 표현된다.

🧪 기본 코드

for (초기화; 조건; 증감 or 처리)
{
    반복 할 내용
}

for 순서 : 초반 한번만 (1 > 2 > 3 > 4), 이후 지속적으로 (2 > 3 > 4)

  1. int i 라는 변수를 선언과 즉시 초기화 진행
  2. i < students.Length 해당 조건이 맞는지 확인
  3. 조건이 맞았으니, 반복 할 내용 실행
  4. i++로 증감 or 처리 실행

🧪 예제 코드

string[] students = { "짱구", "철수", "맹구", "유리", "훈이" };

for (int i = 0; i < students.Length; i++)
{
    Console.WriteLine($"{i + 1}번 학생 이름: {students[i]}");
}

🧪 삼항 연산자를 활용한 형태

int count = 0;
for (string name = students[count]; count < students.Length; name = (count < students.Length) ? students[count] : null)
{
    Console.WriteLine($"{count + 1}번 학생 이름: {name}");
    count++;
}
  • 이렇게 작성하는 건 가능하지만, 가독성이 떨어지므로 실무에서는 잘 사용하지 않는다.

foreach문

컬렉션(array, list 등)의 요소를 하나씩 순회할 때 사용된다.

🧪 기본 코드

foreach (var item in 컬렉션)
{
    // 반복할 내용
}

🧪 예제 코드

string[] students = { "짱구", "철수", "맹구", "유리", "훈이" };

int count = 0;
foreach (string name in students)
{
    Console.WriteLine($"{count + 1}번 학생 이름: {name}");
    count++;
}

장점

  • 문법이 간단하고 가독성 뛰어남
  • 배열이나 리스트에서 순서대로 요소를 쉽게 꺼낼 수 있음

단점

  • 반복 변수는 읽기 전용이므로 값 재할당 불가능 (컴파일 에러 발생)
  • 값 타입 요소는 복사되므로 수정해도 원본에 반영되지 않음
  • 순회 도중 요소 수정/삭제 불가 (InvalidOperationException 발생 가능)

마무리 정리

반복문특징적합한 상황
while조건이 먼저 검사됨반복 횟수 모를 때
do~while조건 없이 무조건 1회 실행최소 1회 실행 보장
for인덱스를 사용해 요소 제어 가능배열, 인덱스 기반 루프
foreach읽기 전용 순회, 요소 직접 수정 불가컬렉션 탐색용 (읽기 전용)
profile
지모창말, 미모창.

0개의 댓글