AD JB Toolbox 01

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 역시 현재 반복의 다음 회차로 이동합니다.

  1. q를 첫 번째로 입력해 합계가 0인지 확인합니다.
  2. 0은 빈 문자열과 다르므로 정상 금액으로 받아도 합계가 바뀌지 않는지 확인합니다.
  3. 종료 문자를 Q로 입력하면 현재 코드는 q와 다르게 처리합니다. 대소문자를 허용하려면 어떤 입력만 정규화할지 결정합니다.
같은 카테고리의 다른 글
Python 강좌 / VS Code에서 Python 코드 작성하고 실행하기

Python 강좌 / VS Code에서 Python 코드 작성하고 실행하기

VS Code에서 프로젝트 폴더와 가상환경 인터프리터를 연결합니다. 실행 경로 확인, 간단한 디버깅과 패키지 환경 불일치 해결 방법을 설명합니다.

Python 강좌 / 가상환경 만들기와 pip로 패키지 관리하기

Python 강좌 / 가상환경 만들기와 pip로 패키지 관리하기

venv로 프로젝트 환경을 분리하고 python -m pip로 패키지를 관리합니다. 활성화, 버전 기록, 재설치와 설치 환경 불일치 해결 기준을 익힙니다.

Python 강좌 / 함수 정의하고 값 반환하기

Python 강좌 / 함수 정의하고 값 반환하기

def·매개변수·return으로 계산 함수를 작성합니다. 출력과 반환의 차이, 함수 책임과 입력 전제, 호출 오류의 확인 방법을 설명합니다.

Python 강좌 / 집합으로 중복 제거하고 자료형 선택하기

Python 강좌 / 집합으로 중복 제거하고 자료형 선택하기

집합의 중복 제거와 합집합·교집합·차집합을 익힙니다. 허용 분류 검증 예제로 순서·횟수 정보와 remove·discard의 차이를 확인합니다.

Python 강좌 / if·elif·else로 조건에 따라 실행하기

Python 강좌 / if·elif·else로 조건에 따라 실행하기

if·elif·else의 분기 순서와 들여쓰기 규칙을 익힙니다. 금액 구간 분류를 통해 조건 중복, 경계값과 모든 실행 경로의 변수 초기화를 확인합니다.

Python 강좌 / 비교·논리 연산자와 참·거짓 판단하기

Python 강좌 / 비교·논리 연산자와 참·거짓 판단하기

비교·논리 연산자와 참·거짓 변환을 설명합니다. and·or의 단락 평가, 0과 None의 차이, ==와 is의 용도를 예제로 확인합니다.

Python 강좌 / 조건과 반복 종합 실습: 점수 집계 프로그램

Python 강좌 / 조건과 반복 종합 실습: 점수 집계 프로그램

점수 집계 프로그램으로 조건문·반복문·리스트를 연결합니다. 유효 범위, 합격 경계, 빈 입력과 제외 개수를 확인하며 평균 계산을 검증합니다.

Python 강좌 / for·range·enumerate·zip으로 반복하기

Python 강좌 / for·range·enumerate·zip으로 반복하기

for·range·enumerate·zip의 용도를 비교합니다. 번호와 지출 항목을 함께 출력하며 범위의 끝 제외, zip의 길이 불일치와 반복 중 변경 문제를 확인합니다.

Python 강좌 / 튜플과 시퀀스 언패킹 이해하기

Python 강좌 / 튜플과 시퀀스 언패킹 이해하기

튜플 생성과 언패킹, 별표 수집과 값 교환을 익힙니다. 불변성의 범위와 항목 수 오류, 리스트·딕셔너리와의 선택 기준을 설명합니다.

Python 강좌 / 문자열 다루기: 인덱싱·슬라이싱·메서드·f-string

Python 강좌 / 문자열 다루기: 인덱싱·슬라이싱·메서드·f-string

문자열의 인덱싱·슬라이싱과 strip·split·join·f-string을 익힙니다. 원본이 변경되지 않는 특성과 CSV·SQL 처리에서 구분할 점을 설명합니다.