if문과 switch문 모두 특정한 조건에 따라 다르게 동작하는 코드를 만들 수 있지만, 어떤 넓은 범위를 만족하는 조건식을 만들 때는 if문을 활용하는 것이 좀 더 효과적이고 특정한 값에 일치하는 조건을 만들 때는 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사이의 숫자를 선택해 주세요.');
}
///////////////////////위(switch) 아래(if) //////////////////////////////////
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사이의 숫자를 선택해 주세요.');
}
결과
코드
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사이의 숫자를 선택해 주세요.');
}
결과
결론
위 두 코드를 비교해보면 결과값이 다른 것을 볼 수 있습니다.
자세히 보면 if 문의 등호 차이입니다.
== : 동등 비교 -> 문자열 2 와 숫자 2 가 true 라는 결과가 나옴 === : 문자열 2 와 숫자 2의 결과는 false 가 나옴
이처럼switch문은 값들을 비교할 때 자료형을 엄격하게 구분한다는 것과if문으로 대체할 때는 반드시 등호 3개로 일치비교를 해야한다는 것 기억! 하자!