파이썬 while문: 조건이 맞을 때까지 멈추지 않는다!
파이썬 while문: 조건이 맞을 때까지 멈추지 않는다!
무한 루프의 위험부터 break/continue 제어권까지 완벽 가이드
안녕하세요! 6일차에 배운 for문이 '정해진 바구니를 비우는 과정'이었다면, 오늘 배울 while문은 '특정 조건이 깨질 때까지 계속하는 과정'입니다. 마치 "배가 부를 때까지(조건) 계속 먹어라(반복)"와 같죠!
1. while문의 기본 구조: ~하는 동안 계속!
while 뒤에 오는 조건식이 True(참)인 동안, 아래에 들여쓰기 된 코드들이 반복해서 실행됩니다.
# 5번 찍어 안 넘어가는 나무 없다!
tree_hit = 0
while tree_hit < 5:
tree_hit += 1
print(f"나무를 {tree_hit}번 찍었습니다.")
print("나무가 넘어갑니다! 🌲")
while문 안에서 조건을 변화시키는 코드(예: tree_hit += 1)가 없다면 프로그램은 영원히 끝나지 않는 무한 루프에 빠지게 됩니다.
2. 강제 종료의 기술: break
때로는 while True:를 사용해 의도적으로 무한 루프를 만들고, 특정 상황에서 break를 써서 탈출하기도 합니다. 자판기나 로그인 프로그램에서 자주 쓰이는 방식이죠.
coffee = 3
while True:
print("커피를 판매합니다.")
coffee -= 1
print(f"남은 커피: {coffee}개")
if coffee == 0:
print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
break # 루프를 즉시 종료!
3. 이번 차례만 패스: continue
반복문을 완전히 끝내는 break와 달리, continue는 "이번 바퀴만 쉬고 다음 바퀴로 넘어가자!"는 뜻입니다.
# 1부터 10까지 중 홀수만 출력하기
num = 0
while num < 10:
num += 1
if num % 2 == 0: # 짝수라면?
continue # 아래 코드를 실행하지 않고 바로 다음 반복으로 점프!
print(num)
💡 7일차 궁금증 해결 (Q&A)
Q1. for문과 while문 중 언제 무엇을 써야 하나요?
A1. 반복 횟수가 명확하거나 리스트 같은 데이터를 순회할 때는 for가 유리합니다. 반면, "사용자가 종료를 누를 때까지" 혹은 "특정 값이 나올 때까지"처럼 횟수가 불확실한 경우에는 while이 훨씬 적합합니다.
Q2. 실수로 무한 루프를 실행했어요! 어떻게 끄나요?
A2. 당황하지 마세요! 터미널(콘솔) 창에서 Ctrl + C를 누르면 강제로 프로그램을 중단시킬 수 있습니다.
Q3. while 1: 이라는 코드를 봤는데 이건 뭔가요?
A3. 파이썬에서 숫자 1은 True와 같은 의미로 쓰입니다. 따라서 while 1:은 while True:와 똑같이 작동하는 무한 루프 코드입니다.
오늘의 미션 🚩
"나만의 업다운(Up-Down) 숫자 맞추기 게임"을 만들어보세요!
1. 정답 숫자를 변수에 저장합니다. (예: answer = 7)
2. while문을 사용하여 사용자가 정답을 맞출 때까지 숫자를 입력받습니다.
3. 정답보다 크면 "Down!", 작으면 "Up!"을 출력하고, 맞추면 break로 탈출하세요!
✅ 미션 정답 코드
answer = 7
while True:
guess = int(input("숫자를 입력하세요: "))
if guess > answer:
print("Down! 👇")
elif guess < answer:
print("Up! 👆")
else:
print("정답입니다! 🎉")
break
💡 핵심 포인트:
- while True: 정답을 맞출 때까지 무한 반복을 생성합니다.
- int(input()): 입력받은 문자를 숫자 데이터로 변환합니다.
- break: 정답일 경우 즉시 반복문을 종료하고 빠져나옵니다.


댓글
댓글 쓰기