파이썬/기초 프로그래밍

반복 가능한 객체와 흐름 제어 키워드 (return, break, continue, pass)의 동작 방식 정리

Data Jun 2025. 6. 22. 15:23

파이썬에서 반복 가능한 객체(iterable)는 for문과 함께 자주 사용됩니다.
그런데 여기에 return, break, continue, pass 같은 흐름 제어 키워드를 함께 쓰면 어떻게 동작할까요?

이번 글에서는 이터러블한 객체와 흐름 제어의 조합이 어떤 흐름을 만들어내는지 깔끔하게 정리해보겠습니다.

 

1. break와 이터러블: 반복 중단

nums = [1, 2, 3, 4, 5]

for n in nums:
    if n == 3:
        break
    print(n)

출력 결과

1  
2
  • break는 반복을 완전히 종료
  • 이후 항목은 절대 실행되지 않음

 

2. continue와 이터러블: 일부 항목 건너뛰기

nums = [1, 2, 3, 4, 5]

for n in nums:
    if n % 2 == 0:
        continue
    print(n)

출력 결과

1  
3  
5
  • 조건을 만족하면 해당 반복만 건너뜀
  • 다음 항목부터 다시 반복 진행됨

 

3. Pass와 이터러블: 아무것도 하지 않음(자리채움)

for n in [1, 2, 3]:
    if n == 2:
        pass  # 아무것도 하지 않음
    print(n)

출력 결과

1  
2  
3
  • pass는 코드 구조상 블록이 필요한 위치에 사용
  • 실행에 아무 영향 없음

 

4. return과 이터러블: 함수 내 반복 중간 종료

def find_first_even(nums):
    for n in nums:
        if n % 2 == 0:
            return n  # 함수 종료

print(find_first_even([1, 3, 5, 6, 8]))

출력 결과

6
  • return은 함수 자체를 종료시킴
  • 반복 중이더라도 return을 만나면 함수 즉시 종료

 

5.  yield가 있는 경우: 반복을 지연시키며 제어 가능

def even_numbers(nums):
    for n in nums:
        if n % 2 == 0:
            yield n  # 하나씩 반환

for even in even_numbers([1, 2, 3, 4]):
    print(even)

출력 결과

2  
4
  • yield는 이터레이터를 직접 생성
  • for문에서 값을 필요할 때마다 꺼내 쓰는 방식 (lazy evaluation)

 

정리하면

키워드 설명 반복에 대한 영향
break 반복 중지 반복 즉시 종료
continue 현재 반복만 건너뛰고 다음 반복 진행 다음 항목으로 계속 진행
pass 아무 동작 없이 자리만 차지 영향 없음
return  함수 자체 종료 반복 포함 전체 함수 종료
 yield 값을 반환하고 반복을 유지 하나씩 반환하며 반복 유지
  • 이터러블 + 흐름 제어 키워드는 반복을 매우 유연하게 제어할 수 있게 해줍니다.
  • 반복 중단이 필요한 경우 break, 일부 스킵은 continue, 결과 반환은 return,반복을 효율적으로 유지하고 싶다면 yield를 활용하세요.