블록 문(block statement) 은 엄밀히 말해 제어문이 아니지만 제어문과 함께 쓰입니다.(복합문(compound statement) 이라고도 합니다.)
블록 문은 문(statement) 여러 개를 중괄호로 묶은 것이며 자바스크립트는 이들을 하나의 단위로 취급합니다.
제어문 없이 블록 문만 써도 되지만 별 의미는 없습니다.
다음 예제를 보십시오.
{
// 블록 문을 시작합니다.
console.log("statement 1");
console.log("statement 2");
// 블록 문을 끝냅니다.
}
console.log("statement 3");
처음의 두 console.log
는 블록 안에 있습니다.
유효한 문법이지만, 무의미합니다.
블록 문이 유용해지는 것은 제어문과 함께 쓸 때입니다.
예를 들어 while 문에서 실행하는 루프는 블록 문 전체를 실행한 후 조건을 다시 테스트합니다.
예를 들어 ‘2보 전진 후 1보 후퇴’를 한다면 다음과 같이 쓸 수 있을 겁니다.
let funds = 50; // 시작 조건
while(funds > 1 && funds < 100) {
funds = funds + 2; // 2보 전진
funds = funds - 1; // 1보 후퇴
}
이 while 루프에는 끝이 있습니다.
루프가 반복될 때마다 funds는 2만큼 늘어나고 1만큼 줄어드므로, 합하면 1이 늘어납니다.
결국 funds는 100이 되고 루프는 끝납니다.
제어문에는 블록을 쓰는 것이 일반적이지만 꼭 그래야 하는 건 아닙니다.
예를 들어 100이 될 때까지 계속 2를 더하기만 한다면 블록 문을 쓰지 않아도 됩니다.
let funds = 50; //시작 조건
while(funds > 1 && funds < 100)
funds = funds + 2;