JavaScript

[JavaScript] 반복문 for, while

FRDYtheme 2022. 11. 30. 17:59

for 반복문

조건이 만족되는 동안 반복 실행

  for(초기값; 조건식; 증감식) {
    실행문
  }

 

1부터 100까지 숫자를 console.log();로 출력

    for(let a = 1; a < 101; ++a) {
    console.log(a)
    }
    //초기값: a는 1이다.
    //조건식: 101보다 미만이면
    //실행문: a를 출력한다.
    //증감식: a가 1 증가한다.
    //조건식: 101보다 미만이면 (a = 2)
    //실행문: a를 출력한다.
    //증감식: a가 1 증가한다.
    //조건식: 반복...
    반복...
    반복...
    반복...

초기값은 처음 한 번 실행되며 이후
    조건식 -> 실행문 -> 증감식 -> 조건식(충족시) -> 실행문 -> 증감식 순으로 진행
증감식으로 인해 a의 숫자가 1씩 증가하며 101이 되는 순간 멈춘다. 


숫자 1부터 10까지의 합 구하기

<script>
  let sum = 0;
  for (i = 1; i <= 10; i++) {
    sum += i;
  }
  console.log(sum);
</script>

sum은 0이고 i는 1부터 1씩 증가해 sum에 더해진다.

 

  sum:0 + i:1 = sum:1

  sum:1 + i:2 = sum:3

  sum:3 + i:3 = sum:6

  ...

 

sum은 i를 1부터 10까지 하나씩 넣는 상자의 역할.


for문으로 구구단 만들기

for문 안에 for문을 작성해서 구구단 2~9단까지 만들 수 있다.

i는 앞의 숫자, m은 뒤의 숫자로 가장 바깥의 for문, i = 2를 시작으로 그 안의 for문 2~9가 반복되고 나면

다시 바깥의 for문이 3이 되고 다시 안의 for문이 2~9까지 반복...최종적으로 바깥의 i가 9가 될 때까지 반복되는 식.

<!DOCTYPE html>
<html lang="ko">
  <head>
    <title>Document</title>
  </head>
  <body>
    <script>
      for (let i = 2; i < 10; i++) {
        for (let m = 1; m < 10; m++) {
          document.writeln(`<h2>${i}*${m}=${i * m}</h2>`);
        }
      }
    </script>
  </body>
</html>

while 반복문

조건이 참인 동안 반복.

 

let 식별자 = 초기값;

let식별자 : 초기값;
while(조건) { 종료될 수 있는 조건 필요
  조건이 만족될때까지의 실행문;
  증감식; 이 값이 없으면 초기값으로 무한 반복
}

1부터 10까지 while문으로 출력.

  let i = 1; // 초기값
  while (i <= 10) { // 종료될 수 있는 조건식
    console.log(`*${i}`); // 실행문
    i++; // 증감식 : 이 값이 없으면 초기값으로 무한 반복
  }

증감식의 위치에 따라 값이 달라짐

  let count = 0;
  while (count < 6) {
    console.log(`count : ${count}`);
    count++;
    console.log(`count++: ${count}`);
    console.log(`-------------`);
  }


 

증감식 없이 증가연산자를 이용해 작성 가능

<script>
  let i = 0;
  while (i <= 10) {
    console.log(i++);
  }
</script>

 

do.. while 반복문

참이든 거짓이든 무조건 한 번은 실행.

let 초기값;
do {
	실행문;
    증감값;
} while (조건)

 

while의 조건이 false지만 do안의 실행문이 한 번은 실행되므로 '0'의 값을 출력함.

<script>
  let i = 0;
  do {
    console.log(i);
    i++;
  } while ( i === 6 );
</script>

break 키워드

제어문을 벗어날 때 사용.

 

[예제 - 40 이하 3의 배수 구하기]

<!DOCTYPE html>
<html lang="ko">
  <head>
    <title>제목</title>
  </head>
  <body>
    <script>
      for (let k = 0; k<= 100; k+=3 ) {
        if(k >= 40) { // k가 40 이상이 되면 for반복문 탈출
          break; //제어문을 벗어날 때 사용
        }
        document.writeln(k); // 한 줄 씩 띄어서 HTML에 텍스트 작성.
      }
    </script>
  </body>
</html>

continue 키워드

이 키워드를 만나면 건너띄고 반복문의 처음으로 복귀

 

 

원래 코드는 *과 텍스트가 한 번씩 반복되는 구조.

 

 

break를 만나면 *을 출력하고 반복문이 멈춘다.

 

*을 출력하고 continue를 만나 그 아래 텍스트는 출력되지 않고 반복문의 처음으로 돌아감을 반복.