Javascript | 반복문

Jae ·2021년 7월 22일
0

Javascript

목록 보기
5/14

반복문은 주어진 조건식의 평가 결과가 참인 경우 코드 블럭을 실행한다. 그 후 조건식을 다시 검사하여 여전히 참인 경우 코드 블록을 다시 실행한다. 이는 조건식이 거짓일 때까지 반복된다.

자바스크립트는 3가지의 반복문 for 문, while 문, do…while 문을 제공한다. 그 외에도 for..in 문, ES6에서 새롭게 도입된 for…of 문이 있다.

✅ Achievements Goals

  • 반복문을 활용하여 단순한 기능을 반복하여 수행할 수 있다.
  • for문과 문자열, 숫자를 이용해 반복적으로 코드를 실행시킬 수 있다.
  • 기본적인 for문 for (let i = 0; i < 5; i++)을 응용하여 다양한 for문을 만들 수 있다.
  • for와 while의 차이에 대해서 이해할 수 있다.
  • 반복문에 조건문을 적용하여 특정 조건에서만 코드가 실행되도록 할 수 있다.
  • 이중 for문이 무엇인지 이해하고 활용할 수 있다.

반복문


for 문

for 문은 조건식이 거짓으로 판별될 때까지 코드 블록을 반복 실행한다. 가장 일반적으로 사용되는 반복문이다. 아래의 코드는 for 문의 기본 형태이다.

for (초기화식; 조건식; 증감식) {
  조건식이 참인 경우 반복 실행될 문;
}

for 문의 구성 요소

구성요소
초기화식i = 0반복문에 진입할 때 단 한 번 실행된다.
조건식i < 3반복마다 해당 조건이 확인된다. false이면 반복문을 멈춘다.
실행문console.log(i)condition이 truthy일 동안 계속해서 실행된다.
증감식i++각 반복의 body가 실행된 이후에 실행된다.

다음으로 for 문이 어떻게 동작하는지 살펴보자.

for (let i = 0; i < 3; i++){
  console.log(i);
}

위 예제의 for 문은 변수 i가 0으로 초기화된 상태에서 시작하여 i가 2보다 작을 때까지 코드 블록을 2번 반복 실행한다. for 문의 실행 순서를 따라가며 어떻게 동작하는지 살펴보자.

(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 문의 실행이 종료된다.

  • for 문의 초기화식, 조건식, 증감식은 모두 옵션이므로 반드시 사용할 필요는 없다. 어떤 식도 선언하지 않으면 무한 루프가 된다.
for (;;) { } // 무한루프
  • for 문 내에 for 문을 중첩해 사용할 수 있다. 아래는 두 개의 주사위를 던졌을 때, 두 눈의 합이 6이 되는 모든 경우의 수를 출력하는 예제다.
for (var i = 1; i <= 6; i++) {
  for (var j = 1; j <= 6; j++) {
    if (i + j === 6) console.log(`[${i}, ${j}]`);
  }
}

//출력 결과
[1, 5]
[2, 4]
[3, 3]
[4, 2]
[5, 1]

While 문

while 문은 주어진 조건식의 평가 결과가 참이면 코드 블록을 계속해서 반복 실행한다. 조건문의 평가 결과가 거짓이 되면 실행을 종료한다. 만약 조건식의 평가 결과가 불리언 값이 아니면 불리언 값으로 강제 변환되어 논리적 참, 거짓을 구별한다.

let count = 0;

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

조건식의 평가 결과가 항상 참이면 무한루프가 된다.

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

무한루프를 탈출하기 위해서는 코드 블럭 탈출 조건은 if 문에 부여하고 break 문으로 코드 블럭을 탈출해야 한다.

let count = 0;

// 무한루프
while (true) {
  console.log(count);
  count++;
  // count가 10이면 코드 블럭을 탈출한다.
  if (count === 10) break;
} // 0 1 2 3 4 5 6 7 8 9 

0개의 댓글