1. do-while 반복문이 뭔지 알아보자
잠깐 상상해봐: 네가 사용자가 생각한 숫자를 맞추는 프로그램을 만들려고 해. 프로그램이 최소 한 번은 사용자한테 숫자를 물어보고, 맞출 때까지 계속 물어봐야 해. 근데 조건이 처음부터 false면, 일반 while은 반복문 안에 아예 안 들어가.
여기서 do-while 반복문이 등장하지! while이랑 다르게, 얘는 조건이 처음부터 false여도 반복문 본문을 무조건 한 번 실행해. 이건 마치 네가 뭘 샀든 안 샀든 무조건 무료 껌을 주는 거랑 비슷해.
do
{
// 반복문 본문: 이 코드는 최소 한 번 실행돼
}
while (조건);
do-while 반복문 문법
조건 괄호 뒤에 ; 세미콜론이 붙는 거 꼭 봐! 일반 while에는 없는데, 여기엔 있어. 초보자한테는 작은 함정이지 :)
do-while 반복문 동작 순서
- 반복문 본문에 진입 (항상 최소 한 번).
- 조건 검사.
- 조건이 true면 본문 반복.
- 조건이 false면 반복문 종료.
2. 일반 while이랑 뭐가 다를까?
일반 while의 기본 동작을 떠올려보자:
while (조건)
{
// 반복문 본문
}
조건이 처음부터 false면 본문이 한 번도 실행 안 돼!
이제 do-while 예시:
do
{
// 반복문 본문
}
while (조건);
조건이 처음부터 false여도 본문이 최소 한 번 실행돼!
코드로 차이점을 보여줄게:
// 일반 while
int count = 0;
while (count > 0)
{
Console.WriteLine("count = " + count);
count--;
}
// 아무것도 출력 안 됨
// do-while
int count2 = 0;
do
{
Console.WriteLine("count2 = " + count2);
count2--;
}
while (count2 > 0);
// 조건이 false여도 "count2 = 0"이 출력돼!
가끔 이게 "이상하다" 싶을 수도 있는데, 사용자 입력이나 데이터 검증할 때는 이런 동작이 오히려 코드에 도움이 돼.
3. do-while 실제로 언제 쓰냐?
이 반복문이 자주 쓰이는 곳은?
데이터 검증
가장 흔한 예시: 사용자가 뭔가 올바르게 입력할 때까지(예: 숫자만, 혹은 6자 이상 비밀번호 등) 계속 입력을 받는 거야.
string password;
do
{
Console.Write("새 비밀번호를 입력하세요 (6자 이상): ");
password = Console.ReadLine();
}
while (password.Length < 6);
Console.WriteLine("비밀번호가 등록됐어!");
여기선 사용자가 처음부터 긴 비밀번호를 입력해도 반복문 본문이 최소 한 번 실행돼.
콘솔 앱에서 메뉴 만들기
진짜 자주 쓰는 패턴: 메뉴를 보여주고, 사용자 명령을 기다렸다가, 특정 명령이 들어오면 반복문을 끝내는 거야.
string command;
do
{
Console.WriteLine("메뉴:");
Console.WriteLine("1. 인사 출력");
Console.WriteLine("2. 종료");
Console.Write("원하는 동작을 선택하세요: ");
command = Console.ReadLine();
if (command == "1")
{
Console.WriteLine("안녕, 세상!");
}
else if (command != "2")
{
Console.WriteLine("알 수 없는 명령어야.");
}
}
while (command != "2");
Console.WriteLine("잘 가!");
4. while과 다른 반복문 비교
| 반복문 종류 | 조건 검사 시점 | 본문 실행 횟수 | 언제 쓰면 좋음? |
|---|---|---|---|
| while | 앞에서 | 0번 이상 | 반복 횟수를 미리 모를 때 |
| do-while | 뒤에서 | 1번 이상 | 최소 한 번은 실행해야 할 때 |
| for | 앞에서 | 0번 이상 | 반복 횟수가 정해져 있을 때 |
GO TO FULL VERSION