중첩 루프(nested loop)에서 빠져나오는 가장 좋은 방법은 레이블(label)을 사용하는 것입니다. 레이블은 break 및 continue 문과 함께 사용할 수 있으며, 코드 실행 흐름을 훨씬 더 정밀하게 제어할 수 있게 해줍니다. 레이블이란 식별자(identifier) 뒤에 콜론(:)을 붙인 이름으로, 특정 문장이나 코드 블록에 적용됩니다.
예제
아래 코드를 직접 실행해 보면, break 문과 함께 레이블을 사용하여 중첩 루프를 빠져나오는 방법을 확인할 수 있습니다.
실시간 데모
<html>
<body>
<script>
document.write("Entering the loop! <br /> ");
outerloop: // 이것이 레이블 이름입니다
for (var i = 0; i < 5; i++) {
document.write("Outerloop: " + i + "<br />");
innerloop:
for(var j = 0; j < 5; j++) {
if(j > 3 ) break ; // 가장 안쪽 루프만 종료
if(i == 2) break innerloop; // 안쪽 루프를 지정하여 종료
if(i == 4) break outerloop; // 바깥쪽 루프까지 모두 종료
document.write("Innerloop: " + j + " <br />");
}
}
document.write("Exiting the loop!<br /> ");
</script>
</body>
</html>
코드 설명
- break; — 단독으로 사용하면 현재 실행 중인 가장 안쪽 루프만 종료됩니다.
- break innerloop; — 레이블을 지정하면 해당 레이블이 붙은 루프가 즉시 종료됩니다.
- break outerloop; — 바깥쪽 루프의 레이블을 지정하면 중첩된 모든 루프를 한 번에 빠져나올 수 있습니다.
이처럼 레이블을 활용하면 별도의 플래그(flag) 변수를 두거나 코드를 함수로 분리하지 않고도, 여러 겹으로 중첩된 루프를 깔끔하고 직관적으로 제어할 수 있습니다. continue 문에도 동일한 방식으로 레이블을 적용할 수 있으므로, 반복문 흐름 제어가 필요한 상황에서 매우 유용하게 활용됩니다.