중첩된 루프에서 탈출하기
Python에서 break
키워드를 사용한 일반적인 방법
Python에서 for
또는 while
루프를 사용할 때, 해당 루프를 중단하려면 break
키워드를 사용합니다. 이는 하나의 루프에서만 작동하므로, 여러 개의 중첩된 루프에서 완전히 탈출하려면 추가적인 방법이 필요합니다.
1
2
3
4
5
for i in range(5):
for j in range(5):
if j == 2:
break
print(f"i: {i}, j: {j}")
위 코드에서 안쪽 for
루프에서 break
를 사용하면, j
가 2가 되는 순간 그 루프는 종료되지만, 바깥쪽 for
루프는 계속 실행됩니다.
break
와 return
을 이용한 함수 방식
여러 루프에서 한 번에 탈출하려면, 루프를 함수 안에 넣고 return
키워드를 사용하여 함수 자체에서 탈출할 수 있습니다.
1
2
3
4
5
6
7
8
def loop_escape():
for i in range(5):
for j in range(5):
if j == 2:
return
print(f"i: {i}, j: {j}")
loop_escape()
이 경우, j
가 2가 되는 순간 return
이 실행되어 함수가 종료되고, 따라서 모든 루프에서 탈출하게 됩니다.
Exception
을 이용한 방법
특별한 상황에서 여러 루프를 탈출할 필요가 있다면, 사용자 정의 예외를 발생시켜 처리할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
class LoopExit(Exception):
pass
try:
for i in range(5):
for j in range(5):
if j == 2:
raise LoopExit
print(f"i: {i}, j: {j}")
except LoopExit:
pass
LoopExit
라는 사용자 정의 예외를 만들고, 루프 내에서 이 예외를 발생시킵니다. 이 예외가 발생하면 try-except
블록에서 탈출하여 모든 루프에서 벗어납니다.
이 세 가지 방법은 각각의 장단점이 있으므로, 상황에 맞게 적절한 방법을 선택해야 합니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.