티스토리 뷰
자바스크립트 반복문 종료, 유지 구문
자바스크립트에서 반복문은 매우 중요한 프로그래밍 구조입니다. 복잡한 작업을 자동화하고, 코드를 간결하게 유지하는 데 중요한 역할을 합니다. 하지만 때로는 특정 조건에 따라 반복문을 중단하거나 특정 반복을 건너뛰어야 할 때가 있습니다. 이때 유용하게 사용할 수 있는 것이 바로 break와 continue 구문입니다.
이 글에서는 자바스크립트에서 반복문을 제어하는 두 가지 주요 구문인 break와 continue의 사용법과 차이점을 알아보겠습니다.
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
}
위 코드에서는 먼저 i
가 3
일 때는 continue로 인해 해당 루프를 건너뛰고 다음 루프로 넘어갑니다. 이후 i
가 7
일 때는 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 문을 중단하거나 현재 루프를 건너뛸 수 있습니다.