08.2. 반복문

Loop statement

반복문

반복문은 조건식의 평가 결과가 인 경우 코드 블록을 실행한다. 그 후 조건식 다시 평가하여 여전히 참인 경우 코드 블록을 다시 실행한다. 이는 조건식이 거짓일 떄까지 반복합니다.

Key Point💡

자바스크립트의 세 가지 반복문 for, while, do...while

참고) 반복문을 대체할 수 있는 다양한 기능

  • forEach : 자바스크립트는 배열을 순회할 때 사용

  • for...in : 객체의 프로퍼티를 열거할 때 사용

  • for...of : 이터러블을 순회할 수 있는 기능

for 문

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

for (변수 선언문 또는 할당문; 조건식; 증감식){
  조건식이 참인 경우 반복 실핼될 문;
}
for (var i = 0; i < 2; i++) {
  console.log(i);
}
// 0
// 1

for문은 i변수(for문의 변수 선언문의 변수 이름은 반복을 의미하는 iterationi를 사용하는 것이 일반적이다.)가 0으로 초기화된 상태에서 시작하여 i가 2보다 작을 때까지 코드 블록을 2번 반복 실행한다.

  1. for문을 실행하면 맨 먼저 변수 선언문 var i = 0이 실행된다. 변수 선언문은 단 한번만 실행된다.

  2. 변수 선언문의 실행이 종료되면 조건식이 실행된다. 현재 i 변수의 값은 0이므로 조건식의 평가 결과는 true이다.

  3. 조건식의 평가 결과가 true이므로 코드 블록이 실행된다. 증감문으로 실행 흐름이 이동하는 것이 아니라 코드 블록으로 실행 흐름이 이동합니다.

  4. 코드 블록의 실행이 종료되면 증감식 i++가 실행되어 i변수의 값이 1이 된다.

  5. 증감식 실행이 종료되면 다시 조건식이 실행된다. 변수 선언문이 실행되는 것이 아니라 조건식이 실행됩니다. (변수 선언문은 단 한번만 실행됩니다.) 현재 i변수의 값이 1이므로, 조건식 평가 결과는 true가 됩니다.

  6. 조건식의 평가 결과가 true이므로, 코드 블록이 다시 실행

  7. 코드 블럭의 실행이 종료되면 증감식 i++가 실행되어 i변수의 값은 2가 된다.

  8. 증감식 실행이 종료되면 다시 조건식이 실행된다. 현재 i뱐수의 값은 2이므로 조건식의 평가 결과는 false입니다. 조건식의 평가 결과가 false이므로 for문의 실행이 종료됩니다.

Key Point💡

for문의 변수 선언문, 조건식, 증감식은 모두 옵션이므로 반드시 사용할 필요는 없다.

  • 하지만 없으면 무한 루프가 될 수 있습니다.

// 무한루프
for (;;){...}

for문 내에 for문을 중첩해 사용할 수 있습니다. 이를 중첩 for문이라 합니다.

for (var i = 1; i<=6; i++){
  for (var j = 1; j<=6; j++>){
    if (i+j==6){
      consol.log(`${i}, ${j}`)
    }
  }
}

// [1, 5]
// [2, 4]
// [3, 3]
// [4, 2]
// [5, 1]

while 문

while문은 주어진 조건식의 평가 결과가 참이면 코드 블록을 계속해서 반복 실행한다.

Key Point💡

  • for문은 반복 횟수가 명확할 때 주로 사용하고

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

var count = 0;

// count가 3보다 작을 때까지 코드 블록을 계속 반복 실행한다.
while (count < 3) {
  console.log(count); // 0 1 2
  count++;
}

조건식의 평가 결과가 언제나 참이면 무한루프가 된다.

// 무한 루프
while (true) {}

무한 루프에서 탈출하기 위해서는 코드 블록 내에서 if 문으로 탈출 조건을 만들고 break문으로 코드 블록을 탈출한다.

var count = 0;

// 무한 루프

while (true) {
  console.log(count);
  count++;
  // count가 3이면 코드 블록을 탈출한다.
  if (count === 3) break;
} // 0 1 2

do...while 문

do...while문은 코드 블록을 먼저 실행하고 조건식을 평가한다. 따라서 코드 블록은 무조건 한 번 이상 실행된다.

var count = 0;

// count가 3보다 작을 때까지 코드 블록을 계속 실행한다.

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

요약

  • 자바스크립트의 세 가지 반복문 for, while, do...while

  • forEach : 자바스크립트는 배열을 순회할 때 사용

  • for...in : 객체의 프로퍼티를 열거할 때 사용

  • for...of : 이터러블을 순회할 수 있는 기능

  • for문은 반복 횟수가 명확할 때 주로 사용하고

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

  • 무한 루프에서 탈출하기 위해서는 코드 블록 내에서 if 문으로 탈출 조건을 만들고 break문으로 코드 블록을 탈출한다.

  • do...while문은 코드 블록을 먼저 실행하고 조건식을 평가한다. 따라서 코드 블록은 무조건 한 번 이상 실행된다.

Last updated