break문은 레이블 문(식별자가 붙은 문), 반복문, switch의 코드 블록을 탈출한다. break문은 더 이상 반복문을 진행하지 않아도 될 때 불필요한 반복을 회피할 수 있다. 사용 문법은 다음과 같다.
break;
✔️ count가 2일때 while문이 종료되고 2를 반환한다.
function foo() {
let count = 0;
while (count < 5) {
if (count === 2) {
break;
}
count++;
}
return count;
}
console.log(foo()); // 2
✔️ 문자열에서 'L'을 찾으면 반복문을 탈출한다.
const str = 'Autumn Leaves';
const letter = 'L';
let index;
for (let i = 0; i < str.length; i++) {
if (str[i] === letter) {
index = i;
break;
}
}
console.log(index); // 7
✔️ lable이 달린 블록문 빠져나오기. break 문은 항상 자신이 참조하는 label 내에 중첩되어야 한다.
outer: {
inner: {
console.log('1');
break outer; // inner와 outer 둘다 빠져나온다
console.log('2');
}
console.log('3');
}
console.log('hi!'); // '1', 'hi!'
continue 문은 반복문의 실행을 현 지점에서 중단하고 반복문의 처음으로 돌아가 다음 코드를 실행한다. if문 내의 코드가 길어진다면 들여쓰기가 한 단계 더 깊어지므로 continue문을 사용하는 편이 가독성에 좋다. 사용 문법은 다음과 같다.
continue;
✔️ i가 4일 때 현 지점에서 실행을 중단하고 반복문의 증감식으로 이동한다.
const arr = [1, 2, 3, 4, 5, 6, 7];
let count = 0;
for (let i = 0; i < arr.length; i++) {
if (i === 4) continue;
count++;
console.log(i); // 0, 1, 2, 3, 5, 6
}
console.log(count); // 6
✔️ str[i]가 'L'일 때 카운트를 증가시키지 않는다.
✔️ continue문을 사용하면 if문 밖에 코드를 작성할 수 있다.
const str = 'Autumn Leaves';
const letter = 'L';
let count = 0;
for (let i = 0; i < str.length; i++) {
if (str[i] === letter) continue;
count++;
}
console.log(count); // 12
✔️ 반대로 str[i]가 'L'이 아닐 때 카운트를 증가시키지 않는다.
const str = 'Autumn Leaves';
const letter = 'L';
let count = 0;
for (let i = 0; i < str.length; i++) {
if (str[i] === letter) continue;
count++;
}
console.log(count); // 1
✔️ continue가 발생할 때마다 checkingJ 코드는 조건이 false를 반환 할 때까지 반복되어진다.
✔️ false가 리턴되면 checkingIandJ 문이 종료된다.
✔️ continue에 checkingIandJ 문이 있으면 코드는 checkiandj 문 맨 위에서 계속 실행된다.
let i = 0;
let j = 8;
checkingIandJ: while (i < 4) {
console.log('i = ' + i);
i += 1;
checkingJ: while (j > 4) {
console.log('j = ' + j);
j -= 1;
if ((j % 2) == 0)
continue checkingJ;
console.log(j + ' 홀수입니다');
}
console.log('바깥 i = ' + i);
console.log('바깥 j = ' + j);
}
//
"i = 0"
"j = 8"
"7 홀수입니다"
"j = 7"
"j = 6"
"5 홀수입니다"
"j = 5"
"바깥 i = 1"
"바깥 j = 4"
"i = 1"
"바깥 i = 2"
"바깥 j = 4"
"i = 2"
"바깥 i = 3"
"바깥 j = 4"
"i = 3"
"바깥 i = 4"
"바깥 j = 4"