반응형
C# while 반복문 완전 정복! 기본 개념부터 실전 예제까지
초보자도 이해할 수 있는 C# while 문 작동 방식은?
"조건이 참일 때까지 반복!" C# while 문의 기본 개념
C#에서 while문은 "조건이 참일 때 코드 블록을 반복"하는 구조입니다.
가장 단순하고 직관적인 반복문으로, 조건을 만족하지 않으면 한 번도 실행되지 않을 수 있다는 점이 포인트입니다.
int count = 0;
while (count < 5)
{
Console.WriteLine("현재 카운트: " + count);
count++;
}
이 예제는 count가 5보다 작을 때마다 "현재 카운트"를 출력하며, 5가 되면 반복이 종료됩니다.
"조건에 따라 반복 횟수가 유동적일 때" 주로 사용됩니다.
실수하기 쉬운 패턴! while 문에서 무한 루프 발생하는 이유
초보자들이 가장 많이 실수하는 부분은 조건 값이 변화하지 않는 경우입니다.
아래 코드를 보시면 왜 무한 루프가 발생하는지 한눈에 알 수 있습니다.
int num = 1;
while (num < 5)
{
Console.WriteLine("무한 루프입니다!");
}
- num은 절대 변하지 않기 때문에 조건 num < 5는 영원히 true입니다.
- 따라서 "무한 루프입니다!"는 무한히 출력됩니다.
"조건식 내 변수 변화가 없다면 탈출이 불가능하다는 점" 꼭 기억하세요.
시나리오 예제: 사용자 입력값이 올바를 때까지 반복 받기
실제 프로그래밍에서는 사용자의 입력값이 특정 조건을 만족할 때까지 반복 입력을 받는 경우가 많습니다.
string input = "";
while (input != "exit")
{
Console.WriteLine("종료하려면 'exit'을 입력하세요.");
input = Console.ReadLine();
}
- 사용자가 "exit"를 입력하기 전까지 프로그램은 계속해서 질문을 반복합니다.
- 조건이 만족되어야만 루프를 빠져나올 수 있습니다.
실용적인 패턴으로 꼭 기억해두면 유용합니다.
for문과 while문의 차이점, 언제 무엇을 써야 할까?
항목 for문 while문
사용 목적 | 반복 횟수가 명확할 때 | 반복 조건만 명확할 때 |
초기화/조건/증감 위치 | 헤더에 모두 포함 | 조건만 명시, 나머지는 내부 처리 |
가독성 | 숫자 반복에 좋음 | 유동적 조건 반복에 적합 |
비교 팁
- "횟수를 세며 반복한다"면 for문
- "조건 만족 시까지 반복한다"면 while문을 선택하세요.
실전 실습: 숫자 맞추기 게임 만들기
간단한 콘솔 기반 숫자 맞추기 게임 예제를 통해 while 문을 직접 체험해보세요.
Random rnd = new Random();
int answer = rnd.Next(1, 11);
int guess = 0;
Console.WriteLine("1부터 10 사이 숫자를 맞춰보세요!");
while (guess != answer)
{
Console.Write("입력: ");
guess = int.Parse(Console.ReadLine());
if (guess < answer)
Console.WriteLine("업!");
else if (guess > answer)
Console.WriteLine("다운!");
else
Console.WriteLine("정답입니다!");
}
- 사용자가 정답을 맞출 때까지 while 루프가 반복됩니다.
- 숫자 비교와 피드백을 주면서 루프가 자연스럽게 종료됩니다.
실수 줄이기 위한 체크리스트 (while 문 전용)
- 조건이 영원히 true가 되지는 않는가?
- 반복 안에서 조건 변수를 조작하고 있는가?
- 반복이 반드시 종료된다는 보장이 있는가?
이 3가지만 항상 체크하면 무한 루프, 논리 오류를 방지할 수 있습니다.
체크 항목 설명
조건이 변화하는가 | 루프 내에서 변수 변화가 꼭 있어야 함 |
조건 종료 가능성 | 조건이 특정 시점에서 false가 되어야 함 |
예외 처리 고려 | 입력 값 등으로 인한 예외 상황 처리 필요 |
반응형
'IT' 카테고리의 다른 글
상대방 위치, 구글지도로 실시간 확인하는 쉬운 방법 (0) | 2025.05.04 |
---|---|
초보자를 위한 C# IF ELSE 조건문 완전 정복 가이드 (0) | 2025.05.03 |
C# 문자열과 정수 input 제대로 다루는 방법 (0) | 2025.04.29 |
C# Windows Forms 앱 만들기 첫걸음 (0) | 2025.04.29 |
크롬 시크릿모드 제대로 사용하는 꿀팁 (0) | 2025.04.29 |