Python 강좌 / while·break·continue로 반복 제어하기
while은 조건이 참인 동안 반복하며, break는 반복을 끝내고 continue는 현재 회차의 나머지를 건너뜁니다. 종료 조건으로 쓰는 값이 모든 경로에서 바뀌는지 확인해야 무한 반복을 피할 수 있습니다.
항목 반복과 조건 반복 구분하기
처리할 항목이 이미 정해져 있으면 for가 자연스럽습니다. 입력이 올 때까지 기다리거나 상태가 조건을 만족할 때까지 처리한다면 while을 사용할 수 있습니다. while True는 무조건 잘못된 코드가 아니라 내부의 종료 조건을 명확히 관리하는 형태입니다.
관련 동작과 지원 조건은 while·break·continue로 반복 제어하기 관련 공식 문서에서 확인할 수 있습니다.
continue 아래에서만 반복 제어 값을 갱신하면 특정 입력에서 갱신을 건너뛰게 됩니다. while이 멈추지 않으면 우선 Ctrl+C로 중단하고 조건을 바꾸는 코드가 실제 실행되는지 점검합니다.
전체 예제와 실행 결과
별도의 실습 폴더에서 아래 파일을 UTF-8로 저장합니다. 가상환경을 선택한 터미널에서 python while_input.py 명령으로 실행합니다. macOS·Ubuntu에서 가상환경을 사용하지 않는 경우 명령 이름을 python3으로 바꿉니다.
while_input.py 파일의 전체 내용입니다.
total = 0
while True:
text = input("amount or q: ").strip()
if text == "q":
break
if text == "":
continue
amount = int(text)
if amount < 0:
print("skip negative")
continue
total += amount
print("total:", total)
예상 결과는 다음과 같습니다.
amount or q: amount or q: amount or q: skip negative amount or q: total: 3500
실행 흐름을 입력별로 따라가기
q를 받으면 break가 while을 끝냅니다. 빈 입력은 continue로 건너뛰지만 다음 반복에서 다시 input을 호출하므로 입력 상태가 갱신됩니다. 음수는 메시지를 남기고 합계에 넣지 않습니다. 이 예제는 정수 또는 q를 입력한다는 전제이며 abc를 넣으면 아직 ValueError가 발생합니다.
실제 터미널은 사용자가 입력한 글자도 보여 주므로 출력 예시보다 줄바꿈이 자연스럽게 보입니다. 예시 출력은 프로그램의 출력만 이어 표시한 것입니다. 입력 검증을 추가할 때도 종료 문자 검사와 숫자 변환 순서를 유지해야 합니다.
중첩 반복과 종료 범위
break는 가장 안쪽 반복 하나만 끝냅니다. 중첩된 반복 전체를 끝내려면 상태를 전달하거나 함수의 return으로 흐름을 설계할 수 있습니다. continue 역시 현재 반복의 다음 회차로 이동합니다.
- q를 첫 번째로 입력해 합계가 0인지 확인합니다.
- 0은 빈 문자열과 다르므로 정상 금액으로 받아도 합계가 바뀌지 않는지 확인합니다.
- 종료 문자를 Q로 입력하면 현재 코드는 q와 다르게 처리합니다. 대소문자를 허용하려면 어떤 입력만 정규화할지 결정합니다.










