whatisthis?

javaScript. Label 문 본문

WEB STUDY/JAVASCRIPT

javaScript. Label 문

thisisyjin 2021. 12. 20. 20:30

REFERENCE

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/label

 

label - JavaScript | MDN

레이블 구문은 break나 continue 구문과 함께 사용할 수 있다. 원하는 식별자로 구문 앞에 레이블을 추가할 수 있다.

developer.mozilla.org

 

레이블(Label) 은 중첩 반복문을 빠져나갈 때 사용함.

break나 continue 구문과 함께 사용할 수 있고, 원하는 식별자로 구문 앞에 레이블(Label)을 추가할 수 있다.

 

 

Syntax

 

label :
   statement

 

- break나 continue에서만 레이블을 사용할 수 있다.

break는 모든 레이블 구문에서 사용될 수 있으며, continue는 반복 레이블 구문에서만 사용할 수 있다.

 

 

 

<예제>

 

#1. for문에서 레이블 continue 사용하기

 

var i, j;

loop1:
for (i = 0; i < 3; i++) {      //첫번째 for문은 "loop1" 레이블을 붙였다.
   loop2:
   for (j = 0; j < 3; j++) {   //두번째 for문은 "loop2" 레이블을 붙였다.
      if (i === 1 && j === 1) {
         continue loop1;
      }
      console.log('i = ' + i + ', j = ' + j);
   }
}

// 출력 결과:
//   "i = 0, j = 0"
//   "i = 0, j = 1"
//   "i = 0, j = 2"
//   "i = 1, j = 0"
//   "i = 2, j = 0"
//   "i = 2, j = 1"
//   "i = 2, j = 2"
// 다음 두 경우를 어떻게 스킵하는지 주목 : "i = 1, j = 1", "i = 1, j = 2"

 

우선, loop1을 실행 (i=0에서 i=2까지 증가)

- loop2에 의해 (j=0에서 j=2까지 증가)

--- if문에 의해 i=1이고 j=1이면 loop1을 continue함 (else면 loop1은X. 즉 i증가 없음)

 

 

 

i=0 // j=0 

i=0 // j=1

i=0 // j=2

 

 

i=1 // j=0

i=1 && j=1이므로 loop1 로 넘어가므로 i=1에서 i++를 해서 i=2로 넘어가게됨.

 

즉, i=1,j=1과 i=1,j=2가 스킵된 것임.

>>> 중첩 반복문을 빠져나간 것!

 

 

#2. for문에 레이블 break문 사용하기

var i, j;

loop1:
for (i = 0; i < 3; i++) {      //The first for statement is labeled "loop1"
   loop2:
   for (j = 0; j < 3; j++) {   //The second for statement is labeled "loop2"
      if (i === 1 && j === 1) {
         break loop1;
      }
      console.log('i = ' + i + ', j = ' + j);
   }
}

// Output is:
//   "i = 0, j = 0"
//   "i = 0, j = 1"
//   "i = 0, j = 2"
//   "i = 1, j = 0"
// Notice the difference with the previous continue example

이전 예제에서는 continue loop1을 했지만

이번 예제는 break loop1을 해서 for문 자체를 아예 끝내버림.

 

 

** 그냥 블록에도 레이블을 사용할 수 있지만, 반복문 아닌 레이블에는 break문만 사용할 수 있다.

 

 

'WEB STUDY > JAVASCRIPT' 카테고리의 다른 글

javaScript. 대괄호 / 중괄호 / 소괄호 구분  (0) 2021.12.22
javaScript. Sort() 메서드  (0) 2021.12.20
javaScript. Switch문  (0) 2021.12.20
javaScript. break문  (0) 2021.12.20
javaScript(Node.js). readline과 fs모듈  (0) 2021.12.06