Switch 문의 기본 흐름

김서현·2025년 2월 23일

frontend

목록 보기
30/34

Switch 문의 기본 흐름

  1. 표현식 평가:

    • switch(표현식) 내부의 값을 평가합니다.
  2. case 매칭:

    • 평가된 값과 각 case에 작성된 값들을 엄격 비교(===)합니다.
    • 일치하는 case가 있으면, 그 위치로 점프하여 실행을 시작합니다.
  3. 코드 실행 및 fall-through:

    • 일치한 case부터 시작해서 break를 만나기 전까지 아래쪽의 코드들이 모두 실행됩니다.
    • 이 현상을 fall-through라고 부릅니다.
  4. default 실행:

    • 모든 case와 일치하지 않을 경우, default 블록의 코드가 실행됩니다.
    • default는 보통 마지막에 작성하지만, 위치에 따라 실행 순서에 영향을 줄 수 있습니다.
  5. break 의 역할:

    • case(또는 default) 끝에 break를 작성하면, 그 시점에서 switch 문을 종료시켜 이후 코드 실행을 막습니다.
    • 만약 break가 없다면 fall-through 현상으로 다음 case의 코드도 실행됩니다.

예시 코드

예시 1: 기본적인 switch 흐름과 fall-through

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"가 출력됩니다.

예시 2: default 위치에 따른 실행 흐름

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는 조건에 맞는 case를 찾으면 그 위치로 바로 이동하여 실행합니다.
  • fall-through: break 없이 작성된 경우, 일치한 case 이후의 모든 코드가 실행됩니다.
  • default: 모든 case와 일치하지 않을 때 실행되는 기본 코드 블록으로, 보통 마지막에 작성하지만 위치에 따라 실행 순서가 달라질 수 있습니다.
  • break: 각 case나 default 뒤에 작성하여 해당 case 실행 후 switch문을 종료시킵니다.

switch 문의 흐름과 fall-through, 그리고 default의 역할을 쉽게 이해할 수 있습니다.

profile
한양대 학생입니다. 서울캠입니다.

0개의 댓글