개키우는개발자 : )

자바스크립트 스위치( switch ) 조건문 본문

JavaScript/JavaScript

자바스크립트 스위치( switch ) 조건문

DOGvelopers 2019. 5. 14. 21:49
반응형

switch 문

 

문법은 하나 이상의 case 블록과 선택적 기본값을 가진다.

switch(x) {
  case 'value1':  //if x 가 'value1' 이면 실행
    ...
    [break]

  case 'value2':  //if x 가 'value2' 이면 실행
    ...
    [break]

  default:
    ...
    [break]
}

switch 문의 패턴은 ('value1') case 'value1'과 같으면 case : 에서 시작하여 가장 가까운 break까지 실행한다.

만약 case에 일치하는 값이 없다면 default 코드가 실행된다. (default 가 존재할 경우)

 

예제 

let a = 2 + 2;

switch (a) {
  case 3:
    alert( 'Too small' );
    break;
  case 4:
    alert( 'Exactly!' );
    break;
  case 5:
    alert( 'Too large' );
    break;
  default:
    alert( "I don't know such values" );
}

a 의 값은 4이기 때문에 case 4: 와 brake 사이의 alert( 'Exactly!' ); 가 실행이 된다.

 

break 가 없는 예

let a = 2 + 2;

switch (a) {
  case 3:
    alert( 'Too small' );
  case 4:
    alert( 'Exactly!' );
  case 5:
    alert( 'Too big' );
  default:
    alert( "I don't know such values" );
}

case 4: 이후의 case들이 모두 실행된다. 조건이 맞으면 break 문을 사용하여 빠져나와야 한다.

 

switch/case 는 형 변환 또는 연산자를 이용해 값을 변경할 수 있습니다.

 

let a = "1";
let b = 0;

switch (+a) {
  case b + 1:
    alert("this runs, because +a is 1, exactly equals b+1");
    break;

  default:
    alert("this doesn't run");
}

a의 문자열 변수가 앞에 + 를 붙이면 Number(a) 즉 숫자로 형 변환을 합니다.

그 이후 숫자 0 + 1 은 1 이므로 case b+1 : 이 실행됩니다.

 

case의 그룹화

 

복수의 조건일 때 case를 그룹화할 수 있습니다.

let a = 3 or 5;

switch (a) {
  case 4:
    alert('Right!');
    break;

  case 3:                    // (*) grouped two cases
  case 5:
    alert('Wrong!');
    alert("Why don't you take a math class?");
    break;

  default:
    alert('The result is strange. Really.');
}

a 가 3 이어도 alert('Wrong!');  alert("Why don't you take a math class?"); 이 실행되고 값이 5여도 같은 내용이 실행됩니다.

 

Type을 확인하세요

 

조건의 비교는 동일 유형(Type) 이어야 합니다.

let arg = prompt("Enter a value?");
switch (arg) {
  case '0':
  case '1':
    alert( 'One or zero' );
    break;

  case '2':
    alert( 'Two' );
    break;

  case 3:
    alert( 'Never executes!' );
    break;
  default:
    alert( 'An unknown value' );
}

자바스크립트의 prompt 창의 반환 값은 문자(String)입니다.

 

그렇기 때문에 3을 입력하면 case 3 == 숫자 이기 때문에 prompt 입력창의 3은 서로 다른 유형(Type)이기 때문에

default 블록 안의 'An unknown value'가 실행됩니다. 

 

참고https://javascript.info/switch

 

The "switch" statement

 

javascript.info

반응형

'JavaScript > JavaScript' 카테고리의 다른 글

자바스크립트 비교 연산자  (0) 2019.05.15
자바스크립트 코드 구조 및 주석  (0) 2019.05.14
자바스크립트 연산자  (0) 2019.05.11
자바스크립트 사용하기  (0) 2019.05.10
자바스크립트 란?  (0) 2019.05.10
Comments