Javascript : 반복문 (break, 레이블, continue 포함)

kimsnmyng·2024년 11월 30일

Vanilla Javascript

목록 보기
4/23
// for문

for (let i = 0; i < 10; i++) { // , 가 아닌 ;로 구분 초기식, 조건식, 증감식 순서
  console.log('지겨워요 자바스크립트')
} // 참일 떄 까지 반복, 거짓이 되면 중지


for (let i = 0; i < 10; i++) {
  if (i < 5){
    break;
  }
} // 5 미만까지 반복

for (let i = 0; i < 10; i++) {
  if (i % 2 === 0) {
    continue;
  }
} // 홀수만 출력

반복문 (for문)

  • 조건식이 거짓으로 평가될 때 까지 코드 블록을 반복 실행한다.

// 기본 형태

for (변수 선언문 또는 할당문; 조건식; 증감식) {
  조건식이 참인 경우 반복 실행될 문;
}
 
for (let i = 0; i < 2; i++) {
  console.log(i);
}
// 0
// 1
  • 증감식 실행이 종료 되면 다시 조건식이 실행된다. 변수 선언문이 실행 되는 것이 아니라
    조건식이 실행되는 것이다. (101p)

  • for문의 변수 선언문, 조건식, 증감식은 모두 옵션이므로 반드시 사용할 필요는 없다. 단, 어떤 식도 선언하지 않으면 무한루트가 된다.


//2중 for문 예제 두개의 주사위를 던졌을 때 두 눈의 합이 6이 되는 모든 경우

for (let i = 1;, i <= 6, i++) {
  for (let j = 1;, j <= 6, j++ {
    if (i + j === 6) console.log(`[${i}, ${j}]`);
  }
}

[1, 5]
[2, 4]
   .
   .
   .

반복문(while문)

  • for문은 반복 횟수가 명확할 때, while문은 반복횟수가 불명확할 때 주로 사용한다.

  • whil 문은 조건문의 평가 결과가 거짓이 되면 코드 블록을 실행하지 않고 종료한다.
    만약 조건식의 평가 결과가 불리언 값이 아니면 불리언 값으로 강제 변환하여 논리적 참, 거짓을 구별한다.


let count = 0;

while (count < 3) {
  console.log(count); // 0 1 2
  count++;
}
  • 조건식의 평가 결과가 언제나 참이면 무한루프가 된다.
while (true) { ... }
  • 무한루프를 방지하기 위해 코드 블록 내에 if문으로 탈출 조건을 만들고 break 문으로 탈출한다.

let num = 0;

while (true) {
  console.log(num);
  num ++;
  if (num === 3)
    break;
} // 0 1 2

do...while문

  • 코드 블록을 먼저 실행하고 조건식을 평가한다. 이에 따라 코드 블록은 무조건 한 번 이상 실행된다. (참 이상한 코드다.)
let num = 0;

// num이 3보다 작을때 까지 코드블록을 계속 반복

do {
  console.log(num); // 0 1 2
  num++;
} while (num < 3);

break문

  • break 문은 코드블록을 탈출하는 것이 아닌 레이블 문, 반복문, switch 문의 코드 블록을 탈출하는 것이다.

  • 그래서 이외의 코드에 break를 사용하면 문법 에러가 발생한다.

  • 여기서 레이블 문이란 식별자가 붙은 문을 말한다.

seon: console.log('seon');
  • 레이블 문은 실행 순서를 제어하는 데 사용한다. case문과 default도 레이블 문이다.
  • 레이블 문을 탈출하기 위해서는 break 문에 레이블 식별자를 지정해야 한다.
seon: {
  console.log(1);
  break seon;
  console.log(2);
}

console.log('끝');
  • 레이블 문은 중첩된 for문 외부로 탈출할 때 외에는 권장하지 않는 방법이다. 가독성과 오류 때문.

continue문

  • 반복문의 실행을 해당 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킨다.
    break와 달리 반복문을 탈출하는 것은 아니다.

const str = 'Welcome';
const find = 'W';
let count = 0;

for ( let i = 0; i < str.length; i++) {
  if (str[i] !== find)
    continue;
  count++ ;
}
console.log(count); // 0
  • if문 내에서 실행하는 코드가 한 줄이면 continue를 굳이 사용하지 않아도 간편하고 가독성도 좋다. 그러나 실행해야 할 코드가 길다면 들여쓰기가 한 단계 더 깊어지므로 continue를 사용하는 편이 더 좋다.
profile
안녕하세요 김선명입니다.

0개의 댓글