블록 문(block statement)은 하나 이상의 문장을 중괄호 { }로 묶어 하나의 단위로 그룹화한 것입니다. JavaScript 외의 다른 프로그래밍 언어에서는 이를 '복합문(compound statement)'이라고 부르기도 합니다.
블록 문의 기본 문법
블록 문은 다음과 같은 형태로 작성합니다.
{
// 문장 목록
}
블록에 레이블 추가하기
블록에 레이블(label)을 붙이려면 레이블로 사용할 식별자(identifier) 뒤에 콜론(:)을 붙여주면 됩니다.
레이블명: {
// 문장 목록
}
레이블은 특히 break나 continue 문과 함께 사용할 때 유용합니다. 중첩된 반복문에서 일반적인 break는 가장 안쪽 반복문만 종료하지만, 레이블을 지정하면 원하는 바깥쪽 반복문까지 한 번에 빠져나올 수 있습니다.
예제: 레이블과 break 문으로 흐름 제어하기
아래 코드는 레이블을 사용해 중첩된 반복문의 실행 흐름을 제어하는 방법을 보여줍니다.
<html>
<body>
<script>
document.write("루프 시작!<br />");
outerloop: // 레이블 이름
for (var i = 0; i < 5; i++) {
document.write("외부 루프: " + i + "<br />");
innerloop:
for (var j = 0; j < 5; j++) {
if (j > 3) break; // 가장 안쪽 루프 종료
if (i == 2) break innerloop; // 내부 루프 종료
if (i == 4) break outerloop; // 외부 루프까지 한 번에 종료
document.write("내부 루프: " + j + " <br />");
}
}
document.write("루프 종료!<br />");
</script>
</body>
</html>
코드 설명
- break: 조건 없이 사용하면 가장 안쪽(innermost) 반복문만 종료합니다.
- break innerloop: innerloop 레이블이 붙은 반복문을 종료합니다.
- break outerloop: outerloop 레이블이 붙은 바깥쪽 반복문까지 한 번에 종료합니다.
이처럼 레이블을 활용하면 여러 겹으로 중첩된 반복문에서도 유연하게 실행 흐름을 제어할 수 있습니다. 다만 레이블을 남용하면 코드 가독성이 떨어질 수 있으므로, 필요한 경우에만 적절히 사용하는 것이 좋습니다.