[JS Deep Dive] break 문 그리고 continue 문

Simple Key·2022년 1월 24일
0

break 문

break 문은 레이블 문, 반복문, switch 문의 코드 블록을 탈출한다. 그 외 코드 블록에서 break 문을 사용하면 SyntaxError가 발생한다.

// 레이블 문이란 식별자가 붙은 문 !
foo : console.log('hello world');

레이블 문은 프로그램의 실행 순서를 제어하는데 사용된다. switch 문의 case, default 문도 레이블 문이다. 레이블 문을 탈출하려면 break문 뒤에 레이블 식별자를 지정한다.

foo: {
  console.log(1);
  break foo; // 여기서 레이블 문의 코드 블록을 탈출!
  console.log(2);
}
console.log('Done!');

중첩된 for 문의 내부 for문에서 break 문을 사용하면 내부 for 문을 탈출하여 외부 for 문으로 진입한다. 이때 내부 for 문이 아닌 외부 for 문을 탈출하려면 레이블 문을 사용해야한다!

outer: for(let i = 0; i < 100; i++){
  for(let j = 0; j < 100 ; j++){
    if(i + j === 2){ // i + j가 2가 되면 outer 식별자가 붙은 레이블 for 문을 탈출
      break outer
      console.log(`inner [${i}, ${j}]`);
    }
  }
}

console.log('Finished')

레이블 문은 중첩된 for 문 외부로 탈출할 때 유용하지만 그 외 경우는 권장되지 않는다.
프로그램 흐름이 복잡해지고 가독성이 안좋아 오류를 발생시킬 가능성이 높아지기 때문!

continue 문

continue 문은 반복문의 코드 블록 실행을 현 지점에서 중단, 반복문의 증감식으로 실행 흐름을 이동시킨다. break 문 처럼 반복문을 탈출하지 않음!

let string = 'Hello World';
let search = 'o';
let count = 0;

for(let i - 0; i < search.length; i++) {
  // 'o'가 아니면 현 지점에서 실행을 중단하고 반복문의 증감식으로 이동!
  if(string[i] !== search) continue;
  count ++ // continue 문이 실행되면 이 문은 실행되지 않는다!
}

console.log(count); // 3
profile
프론트엔드 개발자 심기현 입니다.

0개의 댓글