[TIL] break 문과 continue 문

Cottonmycotton·2021년 10월 12일
0

TIL

목록 보기
4/16
post-custom-banner

⭕️ break문?

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!'

⭕️ countinue문?

continue 문은 반복문의 실행을 현 지점에서 중단하고 반복문의 처음으로 돌아가 다음 코드를 실행한다. if문 내의 코드가 길어진다면 들여쓰기가 한 단계 더 깊어지므로 continue문을 사용하는 편이 가독성에 좋다. 사용 문법은 다음과 같다.

continue;

  • break 문과 달리 continue는 루프의 실행을 완전히 종료하지 않고 for, while문에서 다음과 같이 작동한다.
    • while 루프에서는 다시 조건으로 이동한다.
    • for 루프에서는 업데이트 표현식으로 이동한다.

💡 예제

✔️ 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"

출처: PoimaWeb

Javascript | MDN

Javascript | MDN

profile
투명인간
post-custom-banner

0개의 댓글