복수의 if 조건문 → switch문 변환 가능

특징:

  1. 특정 변수를 다양하게 비교해볼 수 있다.
  2. 코드 자체가 비교를 잘한다.
  3. 하나 이상의 case를 가진다.

예시 문 )

<aside> 💡 switch(x) { case 'value1': // if (x === 'value1') ... [break]

case 'value2': // if (x === 'value2') ... [break]

default: ... [break] }

  1. 변수 x와 case ‘value’값이 일치하는 지 확인하며 내려감
  2. 일치할 시 case 문 밑에 구문을 실행한다. (break 구문을 만나거나 switch 문을

만나면 실행 종료

</aside>

Case 2 ) break 구문이 없으면 이어지는 case구문을 그대로 시행한다.

<aside> 💡

let a = 1 + 1;

switch (a) { case 0: alert( “적습니다.”); case 1: alert( “적습니다.” ); case 2: alert( “일치.”);

case 3:

alert(”큽니다.”) default: alert( "파악 불가" ); }

출력 값은? → alert (”일치.”), alert(”큽니다”), alert(”파악불가”)

</aside>

Switch/case문에는 어떤 표현식이든 올 수 있다.

<aside> 💡 let a = "1"; let b = 0;

switch (+a) { case b + 1: alert("표현식 +a는 1, 표현식 b+1는 1이므로 이 코드가 실행됩니다."); break;

default: alert("이 코드는 실행되지 않습니다."); }

+a = 1 → case b+1 = 0+1 (일치)하기 때문에 주황색 코드 실행

</aside>

여러 개의 case 문을 묶어서 실행 시킬 수 있다.

switch/case문에서 break문이 없는 경우엔 조건에 상관없이 다음 case문이 실행되는 부작용

<aside> 💡 case 3: // (*) 두 case문을 묶음 case 5: alert('계산이 틀립니다!'); alert("수학 수업을 다시 들어보는 걸 권유 드립니다."); break;

</aside>