본문으로 바로가기
TaeyoungKim.dev

파이썬 break와 continue 차이: 반복문은 언제 멈추고 건너뛸까?

파이썬작성 약 3분 읽기TaeyoungKim
LinkedInX

작업 목록을 훑다가 잠시 보류한 항목은 건너뛰고 싶다. 그런데 처리할 수 없는 항목을 만나면 그 뒤의 작업까지 진행하면 안 된다. 둘 다 '지금 작업을 하지 않는다'는 점은 같지만, continue와 break가 멈추는 범위는 다르다.

break와 continue는 무엇을 멈출까?

continue는 이번 반복만 끝낸다. 반복문은 다음 항목으로 넘어간다. break는 반복문 전체를 끝낸다. 뒤에 항목이 남아 있어도 방문하지 않는다.

만난 명령현재 항목다음 항목
continue아래 코드를 실행하지 않음방문함
break아래 코드를 실행하지 않음방문하지 않음

둘 다 if 안에 자주 들어가지만, if만 빠져나오는 명령은 아니다. 이 차이를 같은 목록으로 확인해 보자.

for 반복문에서 실제 출력은 어떻게 달라질까?

1번부터 5번까지의 작업이 있다. paused는 오늘만 건너뛰고, blocked는 뒤쪽 처리까지 중단해야 한다는 규칙을 가정한다. 실제 업무 정책이 아니라 두 명령의 흐름을 보기 위한 예제다.

python
tasks = [
    (1, "ready"),
    (2, "paused"),
    (3, "ready"),
    (4, "blocked"),
    (5, "ready"),
]

for task_id, state in tasks:
    if state == "paused":
        continue
    if state == "blocked":
        break
    print(f"process #{task_id}")
text
process #1
process #3

2번에서 continue를 만나 3번으로 넘어간다. 4번에서 break를 만나 반복이 끝나므로 5번은 ready여도 살펴보지 않는다. '5번은 왜 안 나왔지?' 싶다면, 상태보다 먼저 4번에서 멈춘 경로를 확인해야 한다.

아래 그림에서도 점선은 건너뛴 항목, 멈춤 표시는 이후 방문이 끊긴 지점이다. 5번은 처리하지 않은 것뿐 아니라 아예 방문하지 않았다.

두 명령을 바꾸면 어떤 문제가 생길까?

4번에도 continue를 쓰면 5번까지 진행한다. 반대로 2번에 break를 쓰면 3번의 정상 작업까지 놓친다. 문법 오류는 없지만 처리 범위가 달라지는 실수다. 반복문이 조용히 끝났다고 마음까지 편해지면 곤란하다.

실제로 목록을 처리할 때는 다음을 먼저 정한다.

  • 이번 항목만 제외해도 다음 항목이 안전하다면 continue
  • 이후 항목의 처리도 중단해야 한다면 break

오류가 난 항목 뒤의 작업을 계속할지, 재시도할지, 전체를 멈출지는 코드보다 업무 규칙이 먼저다. 특히 작업 순서가 중요한 큐에서 continue로 오류를 무시하면 뒤의 작업이 앞의 실패를 모른 채 진행할 수 있다. 반대로 모든 오류에 break를 쓰면 처리 가능한 항목이 쌓인다.

핵심 요약

continue는 현재 반복을 건너뛰고 다음 항목으로, break는 반복문 밖으로 이동한다. 출력만 보지 말고 어느 항목까지 방문했는지 확인하면 두 명령의 차이가 분명해진다. 건너뛰기와 중단 중 무엇이 맞는지는 다음 항목을 처리해도 안전한지로 판단하자.

작성자

TaeyoungKim

기초 개념을 구현과 검증, 실제 운영 판단까지 연결해 기록합니다.

#Python#for 반복문#break#continue

함께 읽으면 좋은 글