for 문 기반 루프의 안전성
Python에서 for 문으로 작성된 루프는 리스트나 튜플 같은 컬렉션의 요소를 한 번에 하나씩 순회합니다. 순회 대상이 정해져 있기 때문에 for 루프가 무한 루프에 빠질 가능성은 상대적으로 낮습니다.
while 루프의 무한 반복 방지
반면 while 루프는 시작 부분에 명시된 조건식이 거짓(False)이 되도록 루프 본문 안에서 적절한 처리를 해주어야 합니다. 이를 소홀히 하면 프로그램이 멈추지 않고 계속 실행되는 무한 루프에 빠질 수 있습니다. 가장 일반적인 방법은 반복 횟수를 세는 카운터 변수를 활용하는 것입니다.
x=0 while x<5: x=x+1 print(x)
위 예제에서는 반복이 진행될 때마다 x 값을 1씩 증가시켜, 조건식 x<5가 결국 거짓이 되도록 만듭니다. 그 결과 루프는 정확히 5번만 실행되고 자연스럽게 종료됩니다.
break 문으로 조기 종료하기
카운터 외에도 break 문을 사용하면 특정 조건이 충족되는 시점에 반복을 즉시 빠져나올 수 있습니다.
while True: stmt1 stmt2 if expr==True: break stmt3 ..
while True처럼 조건이 항상 참인 구조라면 겉보기에는 무한 루프처럼 보이지만, 루프 내부의 if 조건과 break 문을 조합하면 원하는 시점에 루프를 안전하고 확실하게 종료할 수 있습니다. 이러한 패턴은 사용자 입력 대기나 이벤트 처리처럼 종료 시점이 유동적인 상황에서 특히 유용합니다.