JavaScript 8. 반복문 while과 do-while (array, if와의 만남)

yricog·2021년 10월 28일
1

JavaScript_Basic

목록 보기
8/28
post-thumbnail

반복문(Loop)- while

while은 (조건)의 값이 false가 될 때까지 실행문을 반복하는 반복문이다.
마치 if처럼 코드의 흐름을 제어하는 제어문이라고도 할 수 있다.

  • 기본형 while(조건식){실행할 코드}

📕 1부터 100까지의 합을 구해보자

총합을 출력할 sum 변수와, 1씩 증가시켜 조건문을 실행할 n 변수를 선언한다.
n을 1씩 증가시키며 sum에 더해주는 식을 작성하면 끝!
(조건문에 'true'를 쓰고 실행코드 마지막에 if(n>100) break; 를 써도 된다)

<script>
  let sum = 0;
  let n = 1;

  while(n<=100){
    sum += n;
    n++;
  }
  
  console.log("1부터 100까지의 합은 "+sum+"입니다.");
</script>


📗 1부터 100 사이의 짝수의 합과 홀수의 합을 각각 구해보자.

1. while만 사용하는 식

짝수와 홀수를 구하기 위해 각각 evenSum, oddSum 변수를 0의 값으로 선언한 다음, 2씩 값을 증가시켜 조건문을 실행해줄 i 변수를 선언한다. 짝수와 홀수는 서로 2씩 증가하므로 코드 마지막에 i 를 2씩 증가시켜준다. 단, 짝수의 합을 구할때는 i의 초기값을 0으로, 홀수는 1의 값으로 작성해준다.

<script>
  let evenSum = 0;
  let oddSum = 0;
  let i = 0;

  while(i<=100){
    evenSum += i;
    i += 2;
  }
  
  i = 1;
 
 while(i<=100){
    oddSum += i;
    i += 2;
  }
  
  console.log("짝수의 합은 "+evenSum);
  console.log("홀수의 합은 "+oddSum);
</script>

2. if문을 사용하는 식

만약 i를 2로 나눈 나머지가 0이면 짝수니까 evenSum 변수에 짝수값을, 그렇지 않으면 홀수이니 oddSum 변수에 홀수값을 할당한다. i가 1씩 증가하면서 evenSum과 oddSum에 번갈아 할당되어 더해진다.

<script>
    let evenSum = 0;
    let oddSum = 0;
    let i = 0;
    
    while(i<=100){
    	if(i%2 === 0){
          evenSum += i;
        } else {
          oddSum += i;
        }
        i++;
    }
    
    console.log("짝수의 합은 "+evenSum);
    console.log("홀수의 합은 "+oddSum);
</script>


📘 1부터 4까지의 숫자 중 (2,3)의 숫자만 3번 반복해서 나타내는 식을 작성해보자.

script 안에 li 태그를 document.write('<li></li>'); 같이 작성하고, 반복할 구간에 let i = 0; 변수를 선언한 다음 while 반복문을 작성한다.

while은 거의 변수가 따라다니며, 선언한 변수에 조건을 넣어준다.
실행코드의 마지막에 변수에 1을 증가시킴으로써 0,1,2 (= 총 3번) 출력한 후 i가 3이 되었을 때 조건이 false가 되어 반복문을 빠져나와 마지막 4를 출력시킨다.

    <ul>
        <script>
            document.write('<li>1</li>');
            
            let i=0;
            while(i<3){
            document.write('<li>2</li>');
            document.write('<li>3</li>');
            i = i+1;
            }
            
            document.write('<li>4</li>');
        </script>
    </ul>


📙 while을 활용하여 array 리스트를 간단한 코드로 출력해보자.

먼저 script 안에 month 변수의 배열을 따로 작성한다. 그러고 나서 리스트 태그 ul 안에 while반복문을 작성해 주는데, 이 때 조건문 안에 배열의 갯수를 반환하는 length를 사용해주고, 실행문에는 month 배열의 i 번째를 나타내는 month[i]를 작성하여 배열 각각의 데이터가 리스트로 출력되게 한다.

  • array의 length 속성을 사용해야 추후 배열 데이터를 추가해도 자동으로 리스트 업 된다!
    <script>
        let month=['Jan','Feb','March','April'];
    </script>

    <ul>
        <script>
            let i=0;
            while(i<month.length){
            document.write('<li>'+month[i]+'</li>');
            i =i+1;
            }
        </script>
    </ul>


do-while문

조건이 true일 때 코드를 실행했던 while과 반대로, 코드를 먼저 실행한 후 조건을 확인하는 식이다. 즉, 조건을 확인하기 전에 무조건 한번은 실행된다는 것!

연습예제 1 : 실행 조건이 5보다 작아야 하지만, do-while문에서는 조건과 상관없이 첫번째 코드를 실행하여 출력한다.

<script>
  let i =6;

  do{ 
      console.log(i);
  } while(i<5);          //출력 = 6
</script>

연습예제 2 : 1에서 100까지의 합을 구해보자.

<script>
    let sum=0;
    let n=1;
    
    do{ 
    	sum += n;
        n++;
    } while(n<=100);
    
    console.log("1~100의 합은 "+sum);   //출력 = '1~100의 합은 5050'
</script>
profile
의미와 가치를 쫓는 개발자 ✨

0개의 댓글