1. break
반복문이 완료되기 전에 종료하고 싶을 때 사용한다.
switch 조건문에서 본적 있다.
for(i = 0; i < a.length; i++) {
if (a[i] == theValue) {
break;
}
}
2. continue
break와 비슷하게 동작하지만, 반복문을 완전히 탈출하는게 아니라 반복문의 다음 반복문으로 건너뛸 때 사용한다.
i = 0;
n = 0;
while(i < 5){
i++;
if(i == 3){
continue;
}
n += i;
}
3. label
label은 프로그램에서 다른 곳으로 참조할 수 있도록 식별자로 문을 제공하는 것이다.
쉽게 이름표를 붙인다고 생각하면 좋을 것 같다.
아래와 같은 방식으로 이름을 붙인다.
label :
statement
예시
markLoop:
while (theMark == true) {
doSomething();
}
// while문에 markLoop라는 이름표를 붙였다
반복문 등에 레이블을 붙이고 break나 continue를 써서 반복문의 어느 위치에서 작업을 멈추고 어디서 다시 실행할지 알려줄 수 있다.
(자바스크립트에는 goto구문이 없다)
break label;
continue label;
예시) continue label
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; // i가 1이면서 j도 1일 때 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"
// i = 0 j = 0, 1, 2
// i = 1 j = 0, 1, 2 -> i = 1, j = 1이 되는 순간에 i = 1인 loop1을 다음 반복으로 건너뛰기 때문에
//i = 2인 반복으로 넘어간다
// i = 2 j = 0, 1, 2
예시) break label
var i, j;
loop1:
for(i = 0; i < 3; i++){ //i인 for문에 loop1
loop2:
for(j = 0; j < 3; j++){ //j인 for문에 loop2
if(i === 1 && j === 1){
break loop1;
}
console.log('i = ' + i + ', j = ' + j);
}
}
// 출력결과:
// "i = 0, j = 0"
// "i = 0, j = 1"
// "i = 0, j = 2"
// "i = 1, j = 0"
// i = 1, j = 1이 됨과 동시에 i=1인 반복문을 바로 탈출한다.
참고 : https://ko.javascript.info/while-for
참고 : https://developer.mozilla.org/ko/docs/Learn/JavaScript/Building_blocks/Looping_code
참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Loops_and_iteration
참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/label
'HTML, CSS, JavaScript > 자바스크립트' 카테고리의 다른 글
화살표 함수 기본 (0) | 2022.06.30 |
---|---|
함수(함수 선언, 함수 표현식, 재귀함수) (0) | 2022.06.29 |
반복문 (for, while, do-while) (0) | 2022.06.29 |
nullish 병합 연산자 ?? (0) | 2022.06.28 |
논리 연산자 (0) | 2022.06.28 |
댓글