728x90
반응형
코딩테스트를 준비하면서 이중 for문을 완전히 탈출하는 코드를 작성한 적이 있습니다.
이중 for문 탈출은 일반적으로 flag를 사용해서 break로 탈출하는데요.
그 밖에 for else문으로 탈출할 수 있음도 알게 되어 공유드리려고 글을 작성하게 되었습니다.
for-else문이 작동하는 과정
for-else문은
for문이 break 등으로 중간에 빠져나오지 않고 끝까지 실행됐을 경우, else문이 실행됩니다.
for i in range(2):
print(i, end=' ')
else:
print('for문이 끝까지 실행됐습니다!')
위의 코드를 실행하면 하단처럼 결과가 나오는데요.
이는 for문이 중간에 빠져나오지 않고 끝까지 실행됐기 때문입니다.
그렇다면 이렇게 코드를 작성한다면, 결과는 어떻게 나올까요 ?
for i in range(2):
if i == 1:
break
print(i, end=' ')
else:
print("for문이 끝까지 실행됐습니다! ")
for문이 중간에 멈췄기 때문에, else가 실행되지 않았습니다.
for-else문으로, 이중 for문 탈출하는 방법
for i in range(1, 4):
for j in range(1, 3):
print('바깥쪽 {} : 안쪽 {}' .format(i, j))
if i == 2 and j ==2 :
break
else:
continue
break
이렇게, i=2이고 j=2일 때 안쪽 for-else문을 벗어나게 되어
바로 마지막 줄의 break문을 동작시키게 됩니다.
(꿀팁이죠 ? ㅎㅡㅎ)
728x90