한양과학기술고등학교

에듀테크 프로젝트 대시보드

while 반복문

while break continue infinite loop

조건이 참인 동안 반복. 반복 횟수를 미리 모를 때 사용합니다.

1. 기본형

n = 10
while n > 0:
    print(n)
    n -= 1               # 조건 변수를 꼭 갱신 (안 하면 무한 루프)

# 카운터 패턴
i = 0
while i < len(data):
    process(data[i])
    i += 1

2. 무한 루프 + break

while True:
    line = input("> ")
    if line == "quit":
        break
    if not line:
        continue
    handle(line)

# "적어도 한 번 실행" (do-while 흉내)
while True:
    answer = input("계속? (y/n) ")
    if answer in ("y", "n"):
        break

3. while ... else

attempts = 3
while attempts > 0:
    if try_login():
        break
    attempts -= 1
else:
    print("계정 잠금")     # break 없이 조건이 거짓이 되면 실행

4. for 로 바꿀 수 있으면 for

while vs for
  • 정해진 시퀀스·횟수 → for (인덱스 관리 실수 방지)
  • 종료 조건이 상태에 따라 결정 → while
  • while i < len(x): ... i += 1 은 대개 for x in ... 로 리팩터링 가능

5. 흔한 실수

무한 루프의 원인
  • 조건 변수를 루프 안에서 갱신하지 않음
  • continue 앞에서 카운터를 증가시키지 않아 건너뜀
  • 부동소수점 조건: while x != 1.0 은 오차로 영영 안 끝날 수 있음 → < 사용
  • 빠져나오려면 터미널에서 Ctrl+C
"There should be one — and preferably only one — obvious way to do it"