MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

break 문은 현재 루프, switchlabel 문을 종료하고 프로그램 제어를 종료된 문의 다음 문으로 넘깁니다.

구문

break [label];
label
선택사항. 문의 lable과 관련된 식별자(identifier). 문이 루프나 switch가 아니면, 이 값이 필요합니다.

설명

break 문은 프로그램이 label 달린 문에서 빠져나오게 하는 선택사항 label을 포함합니다. break 문은 참조되는 label 내에 중첩되어야 합니다. label 달린 문은 어떤 block 문이든 될 수 있습니다. 꼭, loop 문을 달 필요가 없습니다.

예제

다음 함수는 i가 3일 때 while loop를 종료하는 break 문이 있고, 그러고는 3 * x값을 반환합니다.

function testBreak(x) {
  var i = 0;

  while (i < 6) {
    if (i == 3) {
      break;
    }
    i += 1;
  }

  return i * x;
}

다음 코드는 lable 달린 블록이 있는 break 문을 사용합니다. break 문은 자신이 참조하는 lable 내에 중첩되어야 합니다. inner_blockouter_block내에 중첩되어야 함을 주의하세요.

outer_block: {
  inner_block: {
    console.log('1');
    break outer_block; // inner_block과 outer_block 둘다 빠져나옴
    console.log(':-('); // 건너뜀
  }
  console.log('2'); // 건너뜀
}

다음 코드는 또한 label 달린 블록이 있는 break 문을 사용하지만 그 break 문이 block_2를 참조하지만 block_1 내에 있기에 구문 오류(Syntax Error)가 발생합니다. break 문은 항상 자신이 참조하는 label 내에 중첩되어야 합니다.

block_1: {
  console.log('1');
  break block_2; // SyntaxError: label을 찾을 수 없음
}

block_2: {
  console.log('2');
}

명세

Specification Status Comment
ECMAScript 1st Edition (ECMA-262) Standard Initial definition. Unlabeled version.
ECMAScript 3rd Edition (ECMA-262) Standard Labeled version added.
ECMAScript 5.1 (ECMA-262)
The definition of 'Break statement' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Break statement' in that specification.
Standard  
ECMAScript 2017 Draft (ECMA-262)
The definition of 'Break statement' in that specification.
Draft  

브라우저 호환성

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

참조

문서 태그 및 공헌자

태그: 
 이 페이지의 공헌자: Netaras
 최종 변경: Netaras,