JavaScript 반복문

같은 코드를 여러 번 실행하는 가장 강력한 도구

while for forEach for...of break/continue
CHAPTER 01
while문 — 가장 간단한 반복
"조건이 true인 동안 계속 실행"이에요. 조건이 false가 되면 멈춰요.
while 문법
while (조건식) {
  // 조건이 true인 동안 반복 실행
  i++; // 증가감식 (필수!)
}
예시: 5부터 1까지 세기
let i = 5;
while (i >= 1) {
  console.log(i);
  i--; // 1씩 감소
}
// 출력: 5, 4, 3, 2, 1
OUTPUT
실행하세요 →
⚠️ 주의: 증가감식이 없으면 무한 반복돼요!
반드시 i++i--같은 증가감식을 포함하세요.

CHAPTER 02
for문 — 가장 많이 쓰는 반복
초기값, 조건식, 증가감식을 한 줄에! 가장 깔끔한 반복문이에요.
for 문법
for (초기값; 조건식; 증가감식) {
  // 반복 실행
}
예시: 1부터 5까지 세기
for (let i = 1; i <= 5; i++) {
  console.log(i);
}
// 출력: 1, 2, 3, 4, 5
OUTPUT
실행하세요 →
조건문과 함께: 4와 8의 공배수 찾기
let nums = '';
for (let i = 1; i <= 100; i++) {
  if (i % 4 === 0 && i % 8 === 0) {
    nums += i + ' ';
  }
}
console.log(nums);
OUTPUT
실행하세요 →

CHAPTER 03
break & continue — 반복 제어하기
반복을 멈추거나 건너뛰는 방법이에요.
break — 반복 중단
// 40까지만 찾고 멈추기
let nums = '';
let limitNum = 40;
for (let i = 1; i <= 100; i++) {
  if (i % 4 === 0 && i % 8 === 0) {
    nums += i + ' ';
    if (i === limitNum) {
      break; // 여기서 반복 중단!
    }
  }
}
OUTPUT
실행하세요 →
continue — 해당 반복만 건너뛰기
// 4의 배수는 모으고, 4의 배수가 아닌 수만 더하기
let nums = '';
let sum = 0;
for (let i = 1; i <= 10; i++) {
  if (i % 4 === 0) {
    nums += i + ' ';
    continue; // 이 반복만 건너뛰기
  }
  sum += i;
}
console.log(`합: ${sum}, 4의배수: ${nums}`);
OUTPUT
실행하세요 →
break vs continue:
break = 반복 전체 중단 (완전히 멈춤)
continue = 현재 반복만 건너뛰고 다음 반복 진행

CHAPTER 04
forEach — 배열의 각 요소 처리
배열의 각 요소에 대해 자동으로 함수를 실행!
forEach 문법
배열.forEach(function(요소, 인덱스, 배열) {
  // 각 요소에 대해 실행
})

// 또는 화살표 함수로
배열.forEach((요소) => {
  // 실행
})
예시: for vs forEach
// ❌ for문 (길어짐)
const fruits = ["사과", "바나나", "오렌지"];
for (let i = 0; i < fruits.length; i++) {
  console.log(fruits[i]);
}

// ✅ forEach (깔끔!)
fruits.forEach((fruit) => {
  console.log(fruit);
})
OUTPUT
실행하세요 →
실전: DOM 조작하기
const subjects = ["HTML", "CSS", "JavaScript"];
const list = document.getElementById("subjectList");

subjects.forEach((subject) => {
  const li = document.createElement("li");
  li.textContent = subject;
  list.appendChild(li);
})
실행 결과
    💡 forEach의 특징:
    - break 사용 불가 (모든 요소 반복)
    - 배열과 함께 쓸 때 가장 간단
    - 내비게이션, 탭, 리스트 같은 UI 만들 때 자주 사용

    CHAPTER 05
    for...of — 가장 간결한 반복
    ES6에서 추가된 최신 반복문! 배열 요소에 직접 접근해요.
    for...of 문법
    for (const 요소 of 배열) {
      // 각 요소에 대해 실행
    }
    예시: for vs forEach vs for...of
    // 1️⃣ for: 인덱스 필요
    for (let i = 0; i < arr.length; i++) { }

    // 2️⃣ forEach: 콜백 함수
    arr.forEach((item) => { })

    // 3️⃣ for...of: 가장 간단!
    for (const item of arr) { }
    OUTPUT
    실행하세요 →
    for...of의 장점:
    - 인덱스 필요 없음
    - breakcontinue 사용 가능
    - 문자열도 순회 가능
    - 가장 깔끔한 문법

    CHAPTER 06
    실전 예시 — 반복문의 실력
    반복문으로 만들 수 있는 멋진 것들!
    구구단 출력 (중첩 반복)
    let table = '<table>';
    for (let i = 2; i <= 9; i++) {
      table += '<tr>';
      for (let j = 1; j <= 9; j++) {
        table += `<td>${i}*${j}=${i*j}</td>`;
      }
      table += '</tr>';
    }
    table += '</table>';
    document.write(table);
    OUTPUT
    💡 중첩 반복이 뭐예요?
    for문 안에 또 다른 for문이 있는 거예요. 예: 구구단 = 2단~9단(바깥 for) × 1~9(안쪽 for)