Javascript _ 반복문

이승미·2022년 5월 26일
0

반복문은 조건식의 평가 결과가 참일 경우에 코드 블록을 실행한다. 그 후 조건식을 다시 평가하여 여전히 참인 경우 코드 블록을 다시 실행한다.
<모던 자바스크립트 DEEP DIVE>

1. for 문

for (변수 선언문 또는 할당문; 조건식; 증감식) {
    조건식이 참일 경우 반복 실행될 문;
}

for문은 조건식이 거짓으로 평가될 때까지 코드 블록을 반복해서 실행한다. 예시를 하나 들어보자.

for(let i=0; i<=5; i++) {
  // 변수 i는 0에서 시작해서 6보다 작다. i는 계속해서 증가한다.
 console.log(i); //0 1 2 3 4 5
}

위의 반복문에 따르면 새로 선언되어 할당된 변수 i는 0 에서부터 시작하여 6보다 작으며, 계속 증가한다.
for문은 조건식 (i<=5) 의 평가 결과가 참일 경우에만 코드 블록을 실행하므로 코드 블록은 6번 실행된다. (i = 0/1/2/3/4/5)

for(let i=5; i>=0; i--) {
  // 변수 i는 5에서 시작해서 0보다 작거나 같다. i는 계속해서 줄어든다.
 console.log(i); //5 4 3 2 1 0

이런 식으로 역으로 반복문을 작성할 수도 있다.


반복문을 중첩하여 사용할 수도 있다. 이를 중첩 반복문이라 부른다. 중첩 반복문의 경우, 첫 번째 반복문 안에서 두 번째 반복문이 실행되는 것이다.

//두 개의 주사위를 던졌을 때 두 눈의 합이 6이 되는 모든 경우
for(let i=1; i<=6; i++) {
  for(let j=1; i<=6; j++) {
    if(i + j === 6 ) {
      console.log(`[${i},${j}]`); }
  }
}
//[1,5] [2,4] [3,3] [4,2] [5,1]
/* i=1인 경우 -> 두 번째 반복문 실행 -> i+J===6 이려면 j가 5여야함 -> j=5
......
i가 5가 될 때까지 반복함. i가 6인 경우엔 j가 0이 되어야 하는데 j=1부터 시작하므로 포함 X */

2. while 문

while문은 주어진 조건식의 평가 결과가 참이면 코드 블록을 계속해서 반복 실행한다. 조건문의 평가 결과가 거짓이 되면 코드 블록 실행 없이 반복을 종료한다. 조건식의 평가 결과가 Boolean 값이 아닐 경우, Boolean 값으로 강제 변환하여 논리적으로 true, false를 구별한다.
while문의 경우, for문과는 달리 반복문 안에서 반복할 변수를 선언하는 것이 아니라 반복문 밖에서 반복할 변수를 선언한다는 특징이 있다.

let i = 0;
while (i <= 3) { //i가 3보다 작거나 같을 때까지 반복 
  console.log(i); //0 1 2 3
  i++; //i는 계속 증가한다
}

조건식의 평가 결과가 언제나 참일 경우, 무한 루프가 되는데 이 경우 if문으로 탈출 조건을 만들어 break 문으로 코드 블록을 탈출한다.

let i = 0;
while (true) { //조건식의 평가 결과가 언제나 true이므로 무한 루프(=무한 반복)에 빠진다. 
  console.log(i);
  i++;
  if (i === 3) { //i가 3일 경우에는 
    break; //코드 블록을 탈출한다
  }
} // 0 1 2

3. do ... while 문

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

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

0개의 댓글