본문 바로가기
자바스크립트

[JAVASCRIPT] switch 사용법 break, default (if else문과 비교)

by jaewooojung 2019. 7. 31.

JAVASCRIPT


switch

switch조건에 따라 다양한 행동을 수행하는 데 사용됩니다.

여러 개의 if-else 문을 사용하는 대신에 사용할 수 있으며, 경우에 따라 if-else보다 코드를 더 읽기 쉽고 관리하기 좋게 만들어 줍니다.

 

기본사용법

switch(expression) {
  case value1:
    // 표현식이 value1과 일치할 때 실행할 코드
    break;
  case value2:
    // 표현식이 value2와 일치할 때 실행할 코드
    break;
  // 원하는 만큼의 case를 가질 수 있음
  default:
    // 어떤 case도 일치하지 않을 때 실행할 코드
}

 

 

예시

const fruit = 'apple';

switch(fruit) {
  case 'apple':
    console.log('Apple is selected');
    break;
  case 'orange':
    console.log('Orange is selected');
    break;
  default:
    console.log('No fruit selected');
}

 

 

출력결과

Apple is selected

 

변수 fruit에 초기화된 값은 apple이므로 switch의 첫 번째 case에 매칭되면서 콘솔 출력됩니다. 출력된 후에는 다음 줄의 break를 실행하면서 전체 switch문이 종료됩니다.

 

만약 break문이 없다면?

 

통과 허용

경우에 따라, break 없이 여러 case를 연달아 사용할 수도 있습니다. 이를 "통과 허용"이라고 합니다.

const number = 1;

switch(number) {
  case 1:
  case 2:
    console.log('Number is 1 or 2');
    break;
  case 3:
    console.log('Number is 3');
    break;
  default:
    console.log('Number is other than 1, 2, or 3');
}

 

출력결과

Number is 1 or 2

 

number 변수에 초기화된 값이 1이고 중간에 break가 없으므로 그대로 통과되어 case 2를 실행합니다.

number에 초기화된 값이 2인 경우에도 결과는 위와 같습니다.

 

만약 어떠한 case에도 매칭되지 않는다면?

 

Default

const number = 999;

switch(number) {
  case 1:
  case 2:
    console.log('Number is 1 or 2');
    break;
  case 3:
    console.log('Number is 3');
    break;
  default:
    console.log('Number is other than 1, 2, or 3');
}

 

출력결과

Number is other than 1, 2, or 3

number 999에 해당하는 case가 없으므로 최하단의 default 절이 실행됩니다.



        
답변을 생성하고 있어요.