개발을 하다 보면 여러 동작을 반복해야 하는 경우가 종종 생깁니다.
상품 목록에서 상품을 차례대로 출력하거나 숫자를 1부터 10까지 하나씩 증가시키면서 동일한 코드를 반복 실행해야 하는 경우같이 말이죠.
for 반복문은 while 반복문보다는 복잡하지만 가장 많이 쓰이는 반복문입니다.
<script>
for(초기값; 조건식; 증감식){
실행문;
}
</script>
예시 1
<script>
for(let i = 1; i <= 10; i++){//조건식이 참인 경우 증가 실행
console.log(i)
} // let i = 1(초기값) i <- 10(조건식) i++(증감식)
</script>
결과 = 1 2 3 4 5 6 7 8 9 10
예시 2
<script>
let sum = 0; //숫자로 변수 초기화 필요. sum은 0부터 시작
for (let i = 1; i <= 10; i++) { // i는 1부터 시작
sum += i; // += 더하기 대입 연산자. sum에 i를 더해서 sum값을 새로운 값으로 갱신
}
console.log(sum);
결과 = 55
/*
i가 1일 때 sum(0) + i(1) -> sum(1) 재할당. 재대입
i가 2일 때 sum(1) + i(2) -> sum(3)
i가 3일 때 sum(3) + i(3) -> sum(6)
...
i가 10일 때 sum(45) + i(10) -> sum(55)
i가 11일 때 i <= 10 조건을 만족시키지 못하기 때문에 실행x
*/
</script>
예시 3
<script>
let total = 0;
for(let i = 1; i <= 9; i++){
total = 2 * i;// 변하지 않는 값을 실행문에.
console.log(`2 * ${i} = ${total}`);// 1~9까지 모두 출력돼야 하므로 반복문 안에 console.log 작성
}
</script>
결과 =
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
예시 4
<script>
let getNum = prompt("숫자를 입력해 주세요");
getNum = +getNum; //숫자열로 변환
let total = 0;
for (let i = 1; i <= getNum; i++) {
total += i; //+ = 더하기 대입 연산자. total에 i를 더해서 total값을 새로운 값으로 갱신
}
document.body.textContent = `사용자가 입력한 ${getNum} 까지의 합은 ${total}입니다`;
// i <= getNum 인 이유 = 사용자가 입력한 값 3이면 1~3까지만 계산되어야 함. 입력한 값 까지만 증가되어야 하므로.
</script>
예시 5
<script>
for (let i = 1; i <= 100; i++) {
if (i % 3 === 0 && i % 7 !== 0) { //3의 배수를 얘기 7의 배수는 아님을 얘기.
console.log(i);
}
}
</script>
예시 6
<script>
let total = 0;
let i, j;
for (i = 2; i <= 9; i++) {
document.write(`<h3>--- ${i}단 ---</h3>`);
for (j = 1; j <= 9; j++) {
// * 1,2,3,4,5,6,7,8,9
total = i * j;
document.write(`${i} * ${j} = ${total}<br>`);
}
}
</script>

예시 7
<script>
let getNum = prompt('2~9까지의 숫자를 입력해 주세요');
let total = 0;
let j;
if(getNum <= 9 && getNum > 1){// 2 ~ 9 까지
document.write(`<h3>--- ${getNum}단 ---</h3>`)// 안내선
for(j = 1; j <= 9; j++){ //1,2,3,4,5,6,7,8,9
total = getNum * j;
document.write(`${getNum} * ${j} = ${total}<br>`);
}
}
else{
alert('2~9까지의 숫자만 입력해 주세요');
}
</script>
예시 8
<script>
let firstDice;
let secondDice;
for(let i = 1; i <=6; i++){// 첫번째 주사위 1~6
for(let k = 1; k <= 6 ; k++){// 두번째 주사위 1~6
let sum = i + k;
if(sum === 6){// 두번째 주사위와의 합이 6인 경우만 출력
console.log(`첫번째 주사위 값: ${i}, 두번째 주사위 값: ${k}`);
}
}
}
</script>