break, continue, pass 비교
특정 코드를 반복하고자 for문과 while문을 이용하여 반복문(loop)을 만들었습니다. 이러한 반복문의 흐름을 제어하거나 동작을 변경하는 데 사용하는 break과 continue에 대해 알아보겠습니다.
1. break 문
break 문은 반복문(while, for)을 실행 중에 중단하고 나오기 위해 사용되는 명령입니다. 주의해야 할 점은 이 break 구문은 바로 위의 반복문(for나 while)만 탈출한다는 것입니다.
기본적인 break 구조에 대해 살펴보도록 하겠습니다.
9까지 출력하지 않았음에도 x == 5인 조건을 만나 break되었음을 알 수 있습니다.
중첩 반복문에서 바로 위의 반복문만 탈출하는 경우도 살펴보도록 하겠습니다. 아래의 경우 각 단의 i X 5
까지만 실행이 됩니다.
2. continue, pass
continue의 사전적 의미를 살펴보면 '계속하다' 라는 뜻이 있습니다. 파이썬에서 continue문은 반복문이 실행하는 코드 블록의 나머지 부분을 실행하지 않고 다음 반복으로 건너가게 흐름을 조정합니다.
pass의 사전적 의미는 '지나치다' 라는 뜻이며, 파이썬에서 pass문은 단순히 실행할 코드가 없다는 것을 의미하며 아무런 동작을 하지 않고 다음 코드를 실행합니다. continue와 pass는 구분해서 사용을 해야 하니 차이점을 잘 정리해 두세요.
위 코드처럼 pass는 단지 지나칠 뿐입니다. 코드가 에러가 나지 않도록 해주는 역할만 있을 뿐입니다.
continue를 잘못 사용하면 아래처럼 무한 루프에 빠질 수도 있습니다. 아래 코드는 실행하지 않고 눈으로만 확인해주세요.
# 주의해주세요! 무한반복입니다!
x = 0
while x < 10:
print(x)
if x == 5:
continue
x += 1
# 주의해주세요! 무한반복입니다!
x = 0
while x < 10:
print(x)
if x == 5:
continue
x += 1
위 코드에서 x += 1이 동작해야 하는데 x == 5일 때 다음 루프로 넘어갔기 때문에 x는 반복문이 멈추지 않는 한 영원히 5인 상태가 됩니다.
3. 모든 반복문 한 번에 탈출하기
변수를 하나 더 두어 여러 반복문을 탈출할 수 있습니다. 다만 이 방법은 반복문이 더 중첩될 경우 코드의 복잡도가 올라갈 수 있습니다.
아래와 같은 코드로 반복문을 한 번에 탈출할 수 있습니다. try와 except는 예외 처리를 하는 구문으로 아래 원리는 예외를 발생시켜 전체 구문을 탈출하게 하는 방법입니다.