whatisthis?
javaScript. Label 문 본문
REFERENCE
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/label
레이블(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 |