JavaScript switch 구문

switch 구문

실행할 여러 코드 블록 중 하나를 선택하려면 switch문을 사용하십시오.

구문

switch(expression) {
  case x:
    // code block
    break;
  case y:
    // code block
    break;
  default:
    // code block
}

작동 방식 :

  • switch 식은 한 번 평가됩니다.
  • expression 값은 각 case의 값과 비교됩니다.
  • 일치하는 코드가 있으면 연결된 코드 블록이 실행됩니다.
  • 일치 항목이 없으면 default 코드 블록이 실행됩니다.

getDay() 메서드는 평일을 0에서 6 사이의 숫자로 반환합니다.

(일요일=0, 월요일=1, 화요일=2..)

다음 예제에서는 평일 번호를 사용하여 평일 이름을 계산합니다.

예제 1
switch (new Date().getDay()) {
  case 0:
    day = "Sunday";
    break;
  case 1:
    day = "Monday";
    break;
  case 2:
     day = "Tuesday";
    break;
  case 3:
    day = "Wednesday";
    break;
  case 4:
    day = "Thursday";
    break;
  case 5:
    day = "Friday";
    break;
  case 6:
    day = "Saturday";
}

break 키워드

JavaScript가 break 키워드에 도달하면 스위치 블록에서 분리됩니다.

그러면 스위치 블록 내에서 실행이 중지됩니다.

Note: break구문을 생략하면 값이 케이스와 일치하지 않더라도 다음 케이스가 실행됩니다.

default 키워드

default 키워드는 케이스가 일치하지 않는 경우 실행할 코드를 지정합니다.

getDay() 메서드는 평일을 0에서 6 사이의 숫자로 반환합니다.

오늘이 토요일(6)도 일요일(0)도 아닌 경우 기본 메시지를 작성합니다.

예제 2
switch (new Date().getDay()) {
  case 6:
    text = "Today is Saturday";
    break;
  case 0:
    text = "Today is Sunday";
    break;
  default:
    text = "Looking forward to the Weekend";
}

default 케이스가 스위치 블록의 마지막 케이스일 필요는 없습니다.

예제 3
switch (new Date().getDay()) {
  default:
    text = "Looking forward to the Weekend";
    break;
  case 6:
    text = "Today is Saturday";
    break;
  case 0:
    text = "Today is Sunday";
}

공통 코드 블록

경우에 따라 다른 스위치 케이스가 동일한 코드를 사용하기를 원할 수 있습니다.

이 예에서 4와 5는 동일한 코드 블록을 공유하고, 0과 6은 다른 코드 블록을 공유합니다.

예제 4
switch (new Date().getDay()) {
  case 4:
  case 5:
    text = "Soon it is Weekend";
    break;
  case 0:
  case 6:
    text = "It is Weekend";
    break;
  default:
    text = "Looking forward to the Weekend";
}

전환 디테일

여러 케이스가 케이스 값과 일치하는 경우 첫 번째 케이스가 선택됩니다.

일치하는 사례가 발견되지 않으면 프로그램은 default 케이스가 선택됩니다.

default 케이스를 찾을 수 없는 경우 프로그램은 스위치 뒤에 있는 문장으로 계속됩니다.

엄격한 비교

스위치 케이스는 엄격한 비교(===)를 사용합니다.

일치시키려면 값이 동일한 유형이어야 합니다.

피연산자의 유형이 동일한 경우에만 엄격한 비교가 참일 수 있습니다.

이 예에서는 x와 일치하는 항목이 없습니다.

예제 5
let x = "0";
switch (x) {
  case 0:
    text = "Off";
    break;
  case 1:
    text = "On";
    break;
  default:
    text = "No value found";
}