Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 레이블 문(Label Statement) 완벽 정리: break·continue로 반복문 흐름 제어하기

JavaScript의 레이블 문(label statement)은 식별자 앞에 레이블을 붙이는 구문입니다. 레이블은 break 문과 continue 문과 함께 사용하면, 특히 여러 겹으로 중첩된 반복문 안에서 실행 흐름을 훨씬 더 정밀하게 제어할 수 있습니다.

레이블의 형식은 매우 간단합니다. 원하는 식별자 이름 뒤에 콜론(:)을 붙이고, 그 뒤에 제어 대상이 되는 문장이나 코드 블록을 배치하면 됩니다.

기본 문법

labelName:
   statement

예제 1: break 문과 함께 레이블 사용하기

아래 코드는 레이블과 break 문을 조합해 반복문의 흐름을 제어하는 예제입니다. 조건에 따라 가장 안쪽 반복문만 종료하거나(break innerloop), 외부 반복문 전체를 한 번에 종료하는(break outerloop) 동작의 차이를 직접 실행해 확인해 보세요.

<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;   // innerloop 레이블의 반복문 종료
               if (i == 4) break outerloop;   // outerloop 레이블의 반복문 종료
               document.write("Innerloop: " + j + " <br />");
            }
      }
   document.write("Exiting the loop!<br /> ");
</script>
</body>
</html>

실행 결과 해설

  • i == 2일 때 break innerloop가 실행되어 내부 반복문만 즉시 종료되고, 외부 반복문은 계속 진행됩니다.
  • i == 4일 때 break outerloop가 실행되어 외부 반복문까지 한꺼번에 종료됩니다.

예제 2: continue 문과 함께 레이블 사용하기

다음 예제는 레이블과 continue 문을 함께 사용하는 방법을 보여줍니다. 일반적인 continue가 현재 반복만 건너뛰는 것과 달리, continue outerloop는 내부 반복문의 나머지 과정을 모두 건너뛰고 외부 반복문의 다음 반복으로 곧바로 이동합니다.

<html>
<body>
<script>
   document.write("Entering the loop!<br /> ");

   outerloop: // 레이블 이름
   for (var i = 0; i < 3; i++) {
      document.write("Outerloop: " + i + "<br />");
      for (var j = 0; j < 5; j++) {
         if (j == 3) {
            continue outerloop; // 외부 반복문의 다음 반복으로 이동
         }
         document.write("Innerloop: " + j + "<br />");
      }
   }
   document.write("Exiting the loop!<br /> ");
</script>
</body>
</html>

실행 결과 해설

내부 반복문에서 j가 3이 되는 순간 continue outerloop가 실행되어, 남은 내부 반복(4)은 건너뛰고 외부 반복문의 다음 차례로 넘어갑니다. 그 결과 각 외부 반복마다 내부 값은 0, 1, 2까지만 출력됩니다.

정리

레이블 문은 다중 중첩 반복문에서 특정 지점을 이름으로 지정해 벗어나거나(break label), 원하는 반복 위치로 건너뛰고(continue label) 싶을 때 유용합니다. 다만 남용하면 코드의 흐름을 따라가기 어려워질 수 있으므로, 중첩이 깊은 반복문에서 흐름 제어가 꼭 필요한 경우에 적절히 활용하는 것이 좋습니다.