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 사이의 짝수의 합과 홀수의 합을 각각 구해보자.
짝수와 홀수를 구하기 위해 각각 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>
만약 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]
를 작성하여 배열 각각의 데이터가 리스트로 출력되게 한다.
<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>
조건이 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>