반복문

AI
qwen-3-235b-a22b
작성자
익명
작성일
2025.07.31
조회수
12
버전
v1

반복문

개요

반복문이란?

반복문(Loop)은 프로그래밍에서 특정 코드 블록을 조건이 만족할 때까지 반복 실행하는 제어 구조입니다. JavaScript에서는 다양한 반복문 구문을 제공하여 배열, 객체, 이터러블(iterable) 등의 데이터를 효율적으로 처리할 수 있도록 지원합니다.

JavaScript에서의 역할

JavaScript의 반복문은 다음과 같은 상황에서 핵심적인 역할을 합니다: - 배열/객체의 요소 순회 - 비동기 작업의 반복 처리 (타이머, 네트워크 요청 등) - 알고리즘 구현 (탐색, 정렬 등) - 사용자 입력 검증 등 반복적인 작업 자동화


반복문의 종류

for 반복문

가장 일반적인 반복문 구조로, 초기화 - 조건 검사 - 증감의 3단계를 포함합니다.

문법

for (초기화; 조건; 증감) {
  // 반복 실행할 코드
}

예시

for (let i = 0; i < 5; i++) {
  console.log(`반복 횟수: ${i}`);
}

주의사항

  • var 대신 let 사용 시 블록 스코프로 안전하게 변수 관리 가능
  • 무한 루프 방지를 위해 증감식 누락 주의

while 반복문

조건이 참일 동안 코드 블록을 반복 실행합니다.

문법

while (조건) {
  // 반복 실행할 코드
}

예시

let count = 0;
while (count < 3) {
  console.log(`카운트: ${count}`);
  count++;
}

특징

  • 반복 횟수가 명확하지 않은 경우 유용
  • 초기화 및 증감식을 별도로 관리해야 함

do...while 반복문

최소 1회는 코드를 실행한 후 조건 검사

문법

do {
  // 실행 코드
} while (조건);

예시

let userInput;
do {
  userInput = prompt("숫자를 입력하세요");
} while (isNaN(userInput));

활용 시나리오

  • 사용자 입력 검증
  • 조건 검사 전 반드시 1회 실행이 필요한 경우

for...in 반복문

객체의 열거 가능한 속성을 순회할 때 사용

문법

for (변수 in 객체) {
  // 실행 코드
}

예시

const person = { name: "Alice", age: 25 };
for (let prop in person) {
  console.log(`${prop}: ${person[prop]}`);
}

주의사항

  • 배열 인덱스 순회 시 문자열 타입으로 반환
  • 상속된 속성까지 포함될 수 있으므로 hasOwnProperty() 검사 필요

for...of 반복문

ES6부터 도입된 이터러블(배열, 문자열, Map 등) 전용 반복문

문법

for (변수 of 이터러블) {
  // 실행 코드
}

예시

const fruits = ["사과", "바나나", "체리"];
for (const fruit of fruits) {
  console.log(fruit);
}

지원 객체

데이터 타입 이터러블 여부
Array
String
Map
Set
DOM 컬렉션
일반 객체

반복 제어문

break

현재 반복문을 즉시 종료합니다.

예시

for (let i = 0; i < 10; i++) {
  if (i === 5) break;
  console.log(i); // 0~4만 출력
}

continue

현재 반복을 건너뛰고 다음 반복으로 진행합니다.

예시

for (let i = 0; i < 5; i++) {
  if (i % 2 === 0) continue;
  console.log(i); // 홀수(,3)만 출력
}

라벨付き 반복문

중첩 반복문에서 특정 레벨의 반복문을 제어할 수 있습니다.

outerLoop: for (let i = 0; i < 3; i++) {
  for (let j = 0; j < 3; j++) {
    if (i + j === 3) break outerLoop;
    console.log(`i=${i}, j=${j}`);
  }
}


활용 사례 및 주의사항

일반적인 사용법

  1. 배열 처리

       const numbers = [10, 20, 30];
       for (const num of numbers) {
         console.log(num * 2);
       }
       

  2. 객체 속성 검색

       const user = { id: 1, role: "admin" };
       for (const key in user) {
         if (key === "role") {
           console.log(`관리자 권한 확인: ${user[key]}`);
           break;
         }
       }
       

피해야 할 실수

  • for...in으로 배열 인덱스를 숫자 타입으로 기대하는 경우
  • ❌ 무한 루프 발생 조건 (while(true) 등)
  • ❌ 이터러블이 아닌 객체에 for...of 사용 시도

성능 고려

  • 배열 순회: for...offor 루프보다 약 20% 느린 경우도 있음 (성능 민감한 코드에서 주의)
  • DOM 조작: for...of 대신 querySelectorAll()과 결합한 for 루프 권장
  • 최적화 팁: 반복 횟수가 고정된 경우 for 루프가 가장 효율적

관련 문서

  1. MDN Web Docs - 반복문
  2. ECMAScript 2015+ 문서
  3. JavaScript 알고리즘 패턴
AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?