개발을 하다 보면 여러 동작을 반복해야 하는 경우가 종종 생깁니다.
상품 목록에서 상품을 차례대로 출력하거나 숫자를 1부터 10까지 하나씩 증가시키면서 동일한 코드를 반복 실행해야 하는 경우같이 말이죠.
<script>
let 식별자 = 초기값;
while(조건){ <- 종료될 수 있는 조건 필요
조건이 만족될 때 까지의 실행문;
증감식; <- 이 값이 없으면 초기갑으로 무한 반복
}
</script>
<script>
let i = 0; //초기값
while (i < 10) { //조건
console.log(i);
i++; //증가의 값. 이 값이 없으면 초기값으로 무한 반복
}
</script>
결과
0
1
2
3
4
5
6
7
8
9
<script>
let e = 0;
while (e < 3) {
console.log(e);
e++;
}
</script>
결과
0
1
2
<script>
let i = 0;
while (true) { // ==1
console.log(i++);
if (i === 5) {
console.log(`이곳은 if문 안 입니다 ${i}`);
break;
}
console.log(`변수 i: ${i}`);
}
</script>
결과
<script>
let i = 0;
while (true) {// ==1
i++;
if (i === 5) {
console.log(`이곳은 if문 안 입니다 ${i}`);
break;
}
console.log(`변수 i: ${i}`);
}
</script>
결과
변수 i: 1
변수 i: 2
변수 i: 3
변수 i: 4
이곳은 if문 안 입니다 5
구구단 8단
<script>
let total = 0;
let num = 1;
while (num <= 9) {
total = 8 * num;
console.log(` 8 x ${num} = ${total}`);
++num;
}
</script>
결과
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
1부터 1000까지의 합
<script>
let sum = 0;
let i = 1;
while (i <= 1000) { // 반복문
sum += i;
i++; // 증감 값
}
console.log(`1부터 1000까지의 합은 ${sum} 입니다`);
</script>
결과
1부터 1000까지의 합은 500500 입니다
1~30까지의 숫자 중 2의 배수이자 6의 배수인 경우만 출력
<script>
let i = 1;
while (i <= 30) {
if (i % 2 === 0 && i % 6 === 0) console.log(i);
i++;
}
</script>
구구단 2~9단 모두 출력
<script>
let i = 2; // 2단부터 시작
let k = 1; // 1~9까지 곱하는 값
while (i <= 9) { // 2~단
console.log(`--- ${i}단 ---`);
while (k <= 9) {
console.log(`${i} * ${k} = ${i * k}`);
k++;
}
i++;
k = 1; // 곱하는 값 재할당
}
</script>
1부터 몇까지 더해야 3000을 넘길 수 있는지
<script>
let i = 1;
let total = 0;
while (true) { // 무한
total += i;
total = i + total;
if (total > 3000) {
break; // 구문을 벗어남
i++;
}
console.log(`1부터 ${i}까지 더하면 ${total}으로 3000을 넘는다`);
</script>
<script>
let 초기값;
do{
실행문;
증감값;
} while(조건);
</script>
예제 1
<script>
let k = 1;
do {
const text = k + "번 째 반복문";
console.log(text);
k++;
} while (k <= 5);
</script>
결과
1번 째 반복문
2번 째 반복문
3번 째 반복문
4번 째 반복문
5번 째 반복문
while과 doWhile의 차이점
<script>
// doWhile
let i = 1;
do {
const text = i + "번 째 반복문<br>";
document.write(text);
i++;
}
while (i < 1);
결과
1번 째 반복문 // i는 1보다 작지 않음에도 실행문을 한 번 실행함.
// while
let j = 1;
while(j < 1) {
const text = j + "번 째 반복문<br>";
document.write(text);
j++;
}
결과
출력되지 않음 // j는 i보다 작지 않기때문에 출력되지 않음.
</script>