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

자바스크립트(JavaScript) 레이블 있는 break vs 레이블 없는 break, 차이점 완벽 정리

레이블(label) 없는 break 문

break 문은 반복문을 조기에 종료할 때 사용합니다. break가 실행되면 해당 반복문을 감싸고 있는 중괄호({}) 블록을 즉시 빠져나가며, 반복문 전체 실행이 중단됩니다. 단, 레이블이 없는 break는 자신이 속한 가장 가까운 반복문 하나만 종료한다는 점에 유의해야 합니다.

예제

다음은 레이블 없이 break 문을 사용한 자바스크립트 예제입니다.

<html>
   <body>
      <script>

         var x = 1;
         document.write("Entering the loop<br /> ");

         while (x < 20) {
            if (x == 5){
               break; // 반복문을 완전히 빠져나감
            }
            x = x + 1;
            document.write( x + "<br />");
         }

         document.write("Exiting the loop!<br /> ");

      </script>

   </body>
</html>

위 예제에서 변수 x가 5가 되는 순간 break가 실행되어 while 반복문이 즉시 종료됩니다. 조건(x < 20)이 아직 참이더라도 더 이상 반복이 진행되지 않습니다.

레이블(label) 있는 break 문

레이블은 프로그램의 실행 흐름을 제어하기 위해 사용됩니다. 특히 중첩된(nested) for 반복문에서 안쪽 반복문이 아니라 바깥쪽 반복문까지 한 번에 빠져나가야 할 때 매우 유용합니다. 레이블 이름 뒤에는 콜론(:)을 붙이며, break 레이블명; 형태로 작성하면 해당 레이블이 붙은 반복문 전체를 종료할 수 있습니다.

예제

다음은 레이블과 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; // innerloop 레이블 종료 (위와 동일한 동작)
               if (i == 4) break outerloop; // outerloop 레이블 종료 (바깥쪽 반복문까지 탈출)
               document.write("Innerloop: " + j + " <br />");
            }
         }

         document.write("Exiting the loop!<br /> ");
      </script>

   </body>
</html>

핵심 차이점 정리

  • 레이블 없는 break: 자신이 포함된 가장 안쪽 반복문만 종료합니다.
  • 레이블 있는 break: 지정한 레이블이 붙은 반복문(예: 바깥쪽 루프)까지 한 번에 탈출할 수 있습니다.
  • 레이블은 break뿐 아니라 continue 문과도 함께 사용할 수 있어, 중첩 반복문의 흐름을 세밀하게 제어하는 데 활용됩니다.