조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용
0개 이상의 문으로 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 함
주어진 조건식의 평가 결과에 따라 코드 블록의 실행을 결정
논리적 참 또는 거짓에 따라 실행할 코드 블록 결정
if (조건식) {
// 조건식이 참이면 이 코드 블록 실행
} else {
// 조건식이 거짓이면 이 코드 블록 실행
}
else if
문 사용if (조건식 1) {
// 조건식1이 참이면 이 코드 블록 실행
} else if (조건식 2) {
// 조건식2가 참이면 이 코드 블록 실행
} else {
// 조건식1과 조건식2가 모두 거짓이면 이 코드 블록 실행
}
var num = 2;
var kind;
if(num > 0) kind = '양수';
else if (num < 0) kind = '음수';
else kind = '영';
console.log(kind); // 양수
주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case문으로 실행 흐름 옮김
switch(표현식) {
case 표현식1:
// switch 문의 표현식과 표현식1이 일치하면 실행될 문
break;
case 표현식2:
// switch 문의 표현식과 표현식2가 일치하면 실행될 문
break;
default:
// switch 문의 표현식과 일치하는 case문이 없을 때 실행될 문
조건식의 평가 결과가 참인 경우 코드 블록 실행, 그 후 조건식 다시 평가하여 여전히 참인 경우 코드 블록 다시 실행
조건식이 거짓으로 평가될 때까지 코드 블록 반복 실행 → 반복 횟수가 명확할 때 사용
for (변수 선언문 또는 할당문; 조건식; 증감식){
조건식이 참인 경우 반복 실행될 문;
}
for (;;) {...}
주어진 조건식의 평가 결과가 참이면 코드 블록을 계속해서 반복 실행 → 반복 횟수가 불분명할 때 사용
var count = 0;
while(count < 3) {
console.log(count); // 0 1 2
count++;
}
while(true) { ... }
var count = 0;
while(true) {
console.log(count);
count++;
if(count === 3) break; // count가 3이면 코드 블록 탈출
} // 0 1 2
코드 블록을 먼저 실행하고 조건식 평가함 → 코드 블록은 무조건 한 번 이상 실행됨
var count = 0;
do {
console.log(count); // 0 1 2
count++;
} while (count < 3);
레이블 문, 반복문 또는 switch 문의 코드 블록 탈출
if (true) {
break; // Uncaught SyntaxError: Illegal break statement
}
레이블 문 탈출하려면 break문에 레이블 식별자 지정
outer: for (var i = 0; i < 3; i++) {
for (var j = 0; j < 3; j++) {
// i + j === 3이면 outer라는 식별자가 붙은 레이블 for문 탈출
if(i + j === 3) break outer;
console.log(`inner [${i}, ${j}]`);
}
}
중첩된 for 문 외부로 탈출할 때 유용하지만, 그 밖의 경우에는 일반적으로 권장하지 않음
→ 프로그램 흐름 복잡해져서 가독성이 나빠지고, 오류 발생시킬 가능성 높음
반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름 이동시킴
→ break 문처럼 반복문을 탈출하지는 않음