티스토리 뷰

자바스크립트 반복문 종료, 유지 구문

자바스크립트에서 반복문은 매우 중요한 프로그래밍 구조입니다. 복잡한 작업을 자동화하고, 코드를 간결하게 유지하는 데 중요한 역할을 합니다. 하지만 때로는 특정 조건에 따라 반복문을 중단하거나 특정 반복을 건너뛰어야 할 때가 있습니다. 이때 유용하게 사용할 수 있는 것이 바로 breakcontinue 구문입니다.

 

이 글에서는 자바스크립트에서 반복문을 제어하는 두 가지 주요 구문인 breakcontinue의 사용법과 차이점을 알아보겠습니다.

break 구문: 반복문의 즉시 종료

break는 자바스크립트에서 반복문을 즉시 종료하는 데 사용됩니다. 이 구문은 특정 조건이 충족되었을 때 더 이상 반복을 진행하지 않고, 반복문을 빠져나오게 합니다.

break 사용 예시

다음은 for 반복문에서 break를 사용하는 간단한 예제입니다:

for (let i = 0; i < 10; i++) {
    if (i === 5) {
        break; // i가 5일 때 반복문 종료
    }
    console.log(i); // 0, 1, 2, 3, 4 출력
}

위 코드에서는 i가 5가 되는 순간 break 구문이 실행되어 반복문이 즉시 종료됩니다. 따라서 출력 결과는 0, 1, 2, 3, 4가 됩니다.

break의 특징

  • 즉시 종료: 조건이 충족되면 해당 반복문의 남은 코드를 실행하지 않고 바로 빠져나옵니다.
  • 다양한 반복문에서 사용 가능: for, while, do...while과 같은 모든 종류의 반복문에서 사용할 수 있습니다.
  • switch 문에서도 사용 가능: 단순히 반복문뿐만 아니라 switch 문에서도 특정 case를 실행하고 나머지를 무시할 때 유용합니다.

continue 구문: 현재 반복 건너뛰기

반면에 continue는 현재의 반복만 건너뛰고, 다음 반복으로 넘어가는 역할을 합니다. 이 구문은 특정 조건이 충족되었을 때 해당 조건 이후의 코드를 실행하지 않고 다음 루프로 넘어가게 합니다.

continue 사용 예시

다음은 for 반복문에서 continue를 사용하는 예제입니다:

for (let i = 0; i < 10; i++) {
    if (i === 5) {
        continue; // i가 5일 때 현재 반복 건너뜀
    }
    console.log(i); // 0, 1, 2, 3, 4, 6, 7, 8, 9 출력
}

위 코드에서는 i가 5일 때 continue 구문이 실행되어 해당 루프의 나머지 부분을 건너뛰고 다음 루프로 넘어갑니다. 따라서 출력 결과는 0, 1, 2, 3, 4 이후에 6, 7, 8, 9가 됩니다.

continue의 특징

  • 현재 루프만 건너뜀: 조건이 충족되면 해당 루프의 남은 코드를 실행하지 않고 다음 루프로 이동합니다.
  • 효율적인 코드 제어: 불필요한 코드 실행을 방지하고 특정 조건에 맞춰 효율적으로 루프를 제어할 수 있습니다.
  • 모든 종류의 반복문에서 사용 가능: for, while, do...while 등 모든 종류의 반복문에서 사용할 수 있습니다.

break와 continue의 차이점

두 구문의 차이를 명확하게 이해하기 위해 아래 표로 정리해보겠습니다:

구분 break continue
동작 방식 현재 반복문을 즉시 종료하고 탈출 현재 루프만 건너뛰고 다음 루프로 이동
적용 범위 모든 종류의 반복문 및 switch 문 모든 종류의 반복문
사용 목적 특정 조건에서 더 이상 루프를 진행하지 않음 특정 조건에서 현재 루프만 무시하고 진행

실전 예제: break와 continue 비교

for (let i = 1; i <= 10; i++) {
    if (i === 3) {
        continue; // i가 3일 때 건너뜀
    }
    if (i === 7) {
        break; // i가 7일 때 종료
    }
    console.log(i); // 출력: 1, 2, 4, 5, 6
}

위 코드에서는 먼저 i3일 때는 continue로 인해 해당 루프를 건너뛰고 다음 루프로 넘어갑니다. 이후 i7일 때는 break로 인해 전체 반복이 종료됩니다. 따라서 출력 결과는 1, 2, 4, 5, 6입니다.

중첩된 반복문의 제어: 레이블(Label) 사용

때로는 중첩된 반복문에서 바깥쪽 루프까지 한 번에 빠져나오거나 건너뛰어야 할 경우도 있습니다. 이때 사용할 수 있는 것이 바로 레이블(Label)입니다. 레이블은 특정 위치에 이름을 붙여서 그 위치로 제어 흐름을 이동시키는 기능입니다.

레이블과 함께 사용하는 break와 continue

outerLoop:
for (let i = 0; i < 3; i++) {
    for (let j = 0; j < 3; j++) {
        if (j === 1) {
            break outerLoop; // 바깥쪽 for 문까지 탈출
        }
        console.log(`i = ${i}, j = ${j}`);
    }
}

위 코드에서는 내부 for 문에서 j === 1일 때 break outerLoop가 실행되어 바깥쪽 루프인 outerLoop까지 한 번에 탈출합니다. 따라서 출력 결과는 i = 0, j = 0까지만 출력됩니다.

레이블을 이용하면 복잡한 중첩 구조에서도 유연하게 흐름을 제어할 수 있습니다.

결론

자바스크립트에서 반복문의 흐름을 제어하는 데 있어 break와 continue는 필수적인 도구입니다. 이 두 구문의 차이를 잘 이해하고 적절히 활용하면 더 효율적이고 가독성 높은 코드를 작성할 수 있습니다. 특히 복잡한 로직이나 중첩된 구조에서는 레이블과 함께 사용하여 더욱 강력한 제어를 할 수 있습니다.

 


자주 묻는 질문(FAQ)

Q1: break와 continue를 switch 문에서도 사용할 수 있나요?

네, 특히 break는 switch 문에서 매우 자주 사용됩니다. 특정 case를 처리한 후 나머지 case들을 무시하고 switch 문을 빠져나올 때 유용합니다.

Q2: continue를 switch 문에서도 사용할 수 있나요?

아니요. switch 문에서는 continue 대신 다른 방법으로 흐름을 제어해야 합니다. continue는 오직 반복문 내에서만 사용할 수 있습니다.

Q3: 중첩된 반복문에서 내부 루프만 종료하고 싶다면 어떻게 해야 하나요?

중첩된 내부 루프만 종료하려면 그냥 일반적인 break를 사용하면 됩니다. 레이블은 바깥쪽 루프까지 탈출할 필요가 있을 때만 사용하세요.

Q4: 레이블은 꼭 필요한 경우에만 사용하는 것이 좋나요?

네. 레이블은 코드의 복잡도를 높일 수 있기 때문에 꼭 필요한 경우에만 사용하는 것이 좋습니다. 가능한 한 간결하게 코드를 작성하는 것이 바람직합니다.

Q5: while 문에서도 break와 continue를 사용할 수 있나요?

네. while 문에서도 동일하게 사용할 수 있습니다. 특정 조건에 따라 while 문을 중단하거나 현재 루프를 건너뛸 수 있습니다.

반응형