JavaScript의 `for` 문

BossTeemo·2024년 5월 4일
post-thumbnail

JavaScript에서의 for

소개

JavaScript의 for 문은 코드 블록을 반복적으로 실행하기 위해 사용되는 가장 기본적인 반복문 중 하나입니다. 특히 반복 횟수가 정해져 있거나, 인덱스 기반으로 배열을 순회할 때 유용합니다. 이번에는 for 문의 동작을 상세히 알아보고 다양한 사례를 통해 이해해보겠습니다.

for 문의 구조

for 문은 세 가지 식을 포함하여 반복을 제어합니다:

for (초기식; 조건식; 증감식) {
    // 반복적으로 실행할 코드
}
  1. 초기식 (Initialization): 반복문의 시작 부분에서 변수를 초기화합니다.

    for (let i = 0; i < 5; i++) {
        console.log(i);
    }
    // 0, 1, 2, 3, 4
  2. 조건식 (Condition): 각 반복이 시작될 때 조건을 평가하며, 조건이 참인 동안 반복문을 실행합니다.

    for (let i = 1; i <= 3; i++) {
        console.log(i);
    }
    // 1, 2, 3
  3. 증감식 (Iteration): 반복문이 한 번 실행된 후에 반복 변수를 업데이트합니다.

    for (let i = 1; i <= 5; i++) {
        console.log(i);
    }
    // 1, 2, 3, 4, 5

for 문의 다양한 사용 방법

  1. 증감식 생략

    • 증감식을 반복문의 코드 블록에서 직접 수행할 수 있습니다.
    for (let i = 1; i <= 10;) {
        console.log(i);
        i++;
    }

    하지만 이러한 방식은 관행적으로 잘 사용되지 않습니다. 증감식은 소괄호 안에 포함하여 코드의 가독성을 높이는 것이 좋습니다.

  2. 초기화 생략

    • 이미 선언된 변수를 활용하기 위해 초기화를 생략할 수 있습니다.
    let i = 1;
    for (; i <= 10; i++) {
        console.log(i);
    }

    첫 번째 세미콜론은 조건식과 구분하기 위해 반드시 필요합니다.

  3. 증감식의 다양한 사용

    • 증감식에서는 ++와 같은 증가 연산자를 사용하거나 복합 대입 연산자를 사용할 수 있습니다.
    // 올바른 예시
    for (let i = 2; i <= 100; i += 2) {
        console.log(i);
    }
    
    // 잘못된 예시: i + 2는 연산 결과만 반환하고 i에 값이 할당되지 않음
    // for (let i = 2; i <= 100; i + 2) {
    //     console.log(i);
    // }
  4. 중첩된 for

    • for 문은 다른 for 문 안에 중첩하여 사용할 수 있습니다.
    for (let i = 1; i <= 3; i++) {
        for (let j = 1; j <= 3; j++) {
            console.log(`i = ${i}, j = ${j}`);
        }
    }

    위 코드는 두 개의 반복문을 중첩하여 ij의 모든 조합을 출력합니다.

반복문 제어

  • break: 특정 조건에서 반복을 중단하고 for 문을 빠져나갑니다.

    for (let i = 0; i < 10; i++) {
        if (i === 5) break;
        console.log(i);
    }
    // 0, 1, 2, 3, 4
  • continue: 특정 조건에서 다음 반복을 위해 현재 반복의 나머지 코드를 건너뜁니다.

    for (let i = 0; i < 5; i++) {
        if (i === 3) continue;
        console.log(i);
    }
    // 0, 1, 2, 4

결론

JavaScript의 for 문은 반복문을 제어하는 데 있어 매우 유용하며 다양한 상황에 적응할 수 있는 유연성을 제공합니다. 올바르게 사용하면 코드를 효율적으로 작성하고 제어할 수 있습니다.

profile
1인개발자가 되겠다

0개의 댓글