본문 바로가기
Javascript, Typescript, React

Javascript - switch문

by 케이리케리 2023. 1. 17.
//switch문 (switch statement)
switch (비교할 값) {
  case 조건값_1:
    동작부분;
    break; //조건이 일치한다면 동작부분을 실행 후 빠져나온다.
  case 조건값_2:
    동작부분;
    break;
  default: //비교할 값이 모든 조건값과 일치하지 않는 경우 //else문과 비슷 //필요에따라 생략 가능
    동작부분;
}

let myChoice = 2;

switch (myChoice) {
  case 1:
    console.log("토끼를 선택한 당신, ...");
    break;
  case 2:
    console.log("고양이를 선택한 당신, ...");
    break;
  case 3:
    console.log("코알라를 선택한 당신, ...");
    break;
  case 4:
    console.log("강아지를 선택한 당신, ...");
    break;
  default:
    console.log("1에서 4사이의 숫자를 선택해주세요.");
}

어떤 넓은 범위를 만족하는 조건식을 만들 때는 if문을 활용하는 것이 좀 더 효과적이고

특정한 값에 일치하는 조건을 만들 때는 switch문이 좀 더 효과적임.

 

switch문이 익숙하지 않다면 if else문으로도 대체가 가능.

 

한 가지 주의할 점은 조건식에서 등호를 반드시 3개를 입력해 주어야 한다. switch문은 암시적 형 변환을 허용하지 않기 때문.

let myChoice = '2';

switch(myChoice) {
  case 1:
    console.log('토끼를 선택한 당신, ...');
    break;
  case 2:
    console.log('고양이를 선택한 당신, ...');
    break;
  case 3:
    console.log('코알라를 선택한 당신, ...');
    break;
  case 4:
    console.log('강아지를 선택한 당신, ...');
    break;
  default:
    console.log('1에서 4사이의 숫자를 선택해 주세요.'); 
}

if (myChoice == 1) {
  console.log('토끼를 선택한 당신, ...');
} else if (myChoice == 2) {
  console.log('고양이를 선택한 당신, ...');
} else if (myChoice == 3) {
  console.log('코알라를 선택한 당신, ...');
} else if (myChoice == 4) {
  console.log('강아지를 선택한 당신, ...');
} else {
  console.log('1에서 4사이의 숫자를 선택해 주세요.');
}

 

결과값 : 

1에서 4사이의 숫자를 선택해 주세요.
고양이를 선택한 당신, ...

switch문은 값들을 비교할 때 자료형을 엄격하게 구분한다는 것과 if문으로 대체할 때는 반드시 등호 3개로 일치비교를 해야한다는 것.