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--;
}
GO TO FULL VERSION