코딩테스트 공부를 하다가 다른 분들의 코드에서 for ~ else, while ~ else 반복문을 목격하게 됐다…
부끄럽지만 문법 자체를 처음 봐서 이게 뭔가 싶었다... 이제 알게 됐으니 잘 알아보고 다음에 활용해보도록 하겠다.
문법 자체는 for문을 작성할 때와 같다. 뒤에 else문이 추가될 뿐이다. for ~ else 문에서 else 문이 출력되는 경우는 for문이 끝까지 실행됐을 때이다. break 등이 실행돼 for문이 끝까지 실행되지 않는 경우 출력되지 않는다.
// break가 없을 때
for i in range(3):
print(i, end=' ')
else:
print('else 출력')
// break가 있을 때
for i in range(3):
if i == 2:
print('종료')
break
print(i, end=' ')
else:
print('else 출력')
다음과 같은 결과를 출력한다.

위쪽 for ~ else 문은 반복문이 끝까지 실행돼 else 문이 실행된 것을 볼 수 있다. 아래쪽 for ~ else 문에서는 break가 실행돼 else 문이 실행되지 않았다.
while ~ else 문에서 else 문이 출력되는 경우는 while의 조건문이 거짓으로 판별될 때까지 실행됐을 경우이다. break 등이 실행돼 while문이 끝까지 실행되지 않는 경우 출력되지 않는다.
// break가 없을 때
i = 2
while i > 0:
print(i, end=' ')
i -= 1
else:
print('else 출력')
// break가 있을 때
i = 2
while i > 0:
if i == 1:
print('종료')
break
print(i, end=' ')
i -= 1
else:
print('else 출력')
다음과 같은 결과를 출력한다.

위쪽 while ~ else 문은 i > 0 이 거짓일 때까지 실행돼 else 문이 실행된 것을 볼 수 있다. 아래쪽 while ~ else 문에서는 break가 실행돼 else 문이 실행되지 않았다.