CodeGym /행동 /C# SELF /while 반복문: 입문과 사용 팁

while 반복문: 입문과 사용 팁

C# SELF
레벨 4 , 레슨 1
사용 가능

1. 들어가기

프로그래밍에서는 똑같은 동작을 여러 번 반복해야 할 때가 진짜 많아. 예를 들면:

  • 리스트의 모든 요소를 하나씩 훑기.
  • 사용자가 원하는 값을 입력할 때까지 계속 입력받기.
  • 1부터 100까지 모든 숫자의 합 구하기.
  • 올바른 비밀번호를 입력할 때까지 계속 비밀번호 요청하기.

이걸 반복문 없이 다 짜려고 하면 코드가 엄청 길어지고, 지루하고, 확장성도 없어. 예를 들어, 계산기 프로그램을 만들면서 1부터 10까지 숫자를 직접 더한다고 생각해봐:

int sum = 0;
sum += 1;
sum += 2;
sum += 3;
// ... 이렇게 10번 반복. 하... 지루하다.
반복문 없이 수동으로 반복 — 진짜 불편해!

이렇게 하다가는 중간에 지쳐서 포기할걸! 해결책은 바로 반복문이야. 반복문을 쓰면 반복되는 동작을 짧고 명확하게 쓸 수 있어. 오늘은 제일 기본적이지만 엄청 유용한 반복문 — while을 배워볼 거야.

2. while 반복문 입문

문법과 기본 구조

while 반복문은 프로그래밍 세계의 "앵무새"야: 어떤 조건이 참인 동안 똑같은 코드 조각을 계속 반복해. 조건이 더 이상 참이 아니면, 앵무새는 조용해지고(반복문이 끝나지).


while (조건)
{
    // 반복문 본문
}
while 반복문과 명령 블록 작성법

다이어그램

while 반복문이 어떻게 동작하는지 이해하기 쉬운 간단한 블록 다이어그램이야:

3. 예시: while 반복문 실제 사용

클래식 카운터

1부터 5까지 세면서 숫자를 출력하는 간단한 프로그램을 만들어보자:

int i = 1;
while (i <= 5)
{
    Console.WriteLine($"단계 № {i}");
    i++; // 카운터 꼭 증가시켜줘!
}
// 출력 결과:
// 단계 № 1
// 단계 № 2
// 단계 № 3
// 단계 № 4
// 단계 № 5

여기서 주의! i 변수를 증가시키는 걸 까먹으면 반복문이 절대 끝나지 않아(우리 앵무새가 불멸의 영원한 반복 기계가 되는 거지). 이걸 무한 반복문이라고 해 — 좀 무섭지.

원하는 값이 나올 때까지 키보드 입력받기

반복문은 종종 사용자가 올바른 답을 입력할 때까지 "계속 시도하게" 만들 때 써:

string password = "";
while (password != "qwerty")
{
    Console.Write("비밀번호를 입력하세요: ");
    password = Console.ReadLine();
}
Console.WriteLine("환영합니다!");

여기서는 프로그램이 마법의 "qwerty"를 입력할 때까지 비밀번호를 계속 물어봐. password = Console.ReadLine(); 이 줄을 빼먹으면 반복문이 또 무한 루프가 돼(비밀번호를 계속 물어보지만 입력을 안 읽어서 영원히 멈춰있는 고장난 로봇처럼 돼버려).

4. while 반복문의 종류와 사용 시나리오

일반적인 while 반복문

위에서 본 것처럼, 이 반복문은 첫 번째 반복 전에 조건을 체크해. 만약 조건이 처음부터 거짓이면 반복문 본문은 한 번도 실행되지 않아.

예시: 조건이 처음부터 거짓일 때

int i = 10;
while (i < 5)
{
    Console.WriteLine(i); // 절대 실행되지 않아!
}

이게 바로 논리적으로 맞는 거지. 여기 써있는 그대로야.

중첩 while 반복문

가끔 반복문 안에 반복문을 넣어야 할 때가 있어. 예를 들어, 모든 줄을 훑으면서 각 줄의 모든 문자를 체크하는 거지. 지금 단계에서는 좀 모험이지만, 간단하게 예시 보여줄게:

int i = 1;
while (i <= 3)
{
    int j = 1;
    while (j <= 2)
    {
        Console.WriteLine($"i = {i}, j = {j}");
        j++;
    }
    i++;
}

// i = 1, j = 1
// i = 1, j = 2
// i = 2, j = 1
// i = 2, j = 2
// i = 3, j = 1
// i = 3, j = 2

중첩 반복문은 몇 강의 뒤에 더 자세히 다룰 거야, 그냥 오늘은 살짝 겁만 주려고 했어 :)

무한 반복문

가끔 반복문은 끝나고, 가끔은 — 영원히 살아있지.

while (true)
{
    Console.WriteLine("나는 영원하다!");
}

이건 잘 안 쓰이지만, 백그라운드 프로세스(예: 서버 동작) 같은 데서 실제로 쓰이기도 해.

5. 바보 같은 실수 안 하려면: while에서 자주 하는 실수

프로그래밍에서 반복문은 전기랑 비슷해: 멋지지만, 안전수칙을 알아야 해.

문제 1: 실수로 무한 반복문 만들기

초보자들이 제일 많이 하는 실수는, 조건에 영향을 주는 변수를 업데이트하는 걸 까먹는 거야. 그러면 반복문이 "무한"히 돌아서 프로그램을 강제로 멈춰야 해(예: Ctrl + C 누르기).

int i = 1;
while (i <= 5)
{
    Console.WriteLine(i);
    // i++;  // 앗! i 증가시키는 걸 까먹었어
}

문제 2: 잘못된 조건

가끔 개발자가 스스로 함정에 빠져: 조건이 절대 참이 안 되는 거지. 그러면 반복문이 아예 실행되지 않아.

int i = 10;
while (i < 5)
{
    Console.WriteLine(i); // 이 코드는 절대 실행 안 돼.
    i++;
}

문제 3: 데이터 타입 실수

반복문 조건에는 항상 불린(boolean) 표현식이 와야 해 — 즉, 계산 결과가 true 아니면 false여야 해.

int number = 5;
while (number) // 에러! bool이 와야 하는데 int가 왔어.
{
    number--;
}
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION