표현식 평가:
switch(표현식) 내부의 값을 평가합니다.case 매칭:
case에 작성된 값들을 엄격 비교(===)합니다.case가 있으면, 그 위치로 점프하여 실행을 시작합니다.코드 실행 및 fall-through:
case부터 시작해서 break를 만나기 전까지 아래쪽의 코드들이 모두 실행됩니다.default 실행:
case와 일치하지 않을 경우, default 블록의 코드가 실행됩니다.default는 보통 마지막에 작성하지만, 위치에 따라 실행 순서에 영향을 줄 수 있습니다.break 의 역할:
case(또는 default) 끝에 break를 작성하면, 그 시점에서 switch 문을 종료시켜 이후 코드 실행을 막습니다.break가 없다면 fall-through 현상으로 다음 case의 코드도 실행됩니다.let value = 2;
switch (value) {
case 1:
console.log("첫 번째 case");
// break가 없으면 아래 case도 실행됨
case 2:
console.log("두 번째 case");
// break가 없으므로, value가 2이면 fall-through 발생
case 3:
console.log("세 번째 case");
break; // 여기서 switch 종료
default:
console.log("default case");
break;
}
// value가 2인 경우 "두 번째 case"와 "세 번째 case"가 출력됩니다.
let animal = "rabbit";
switch (animal) {
case "dog":
console.log("개");
break;
default:
console.log("알 수 없는 동물");
// break가 없으므로, default 실행 후 아래 case가 실행될 수 있음
case "cat":
console.log("고양이");
break;
}
// animal이 "rabbit"일 경우,
// "알 수 없는 동물"이 출력되고, break가 없으므로 이어서 "고양이"도 출력됩니다.
//
// animal이 "cat"일 경우,
// switch문은 "cat" case로 바로 점프하여 "고양이"만 출력됩니다.
switch 문의 흐름과 fall-through, 그리고 default의 역할을 쉽게 이해할 수 있습니다.