자바스크립트에서
switch
문과if
문은 조건에 따라 서로 다른 동작을 수행할 수 있도록 하는 중요한 제어문이다. 이번 글에서는switch
문과if
문을 비교하며, 각각의 특징과 사용 시 유의할 점을 정리했다.
switch
문: 고정된 값에 따른 분기 처리switch
문은 하나의 고정된 값을 조건으로 여러 가지 케이스(case)를 검사하여 해당 케이스의 동작을 수행한다. 이때 switch
문은 자료형도 일치해야 하며, 조건을 만족하는 첫 번째 케이스를 실행한 뒤, break
키워드로 탈출한다.
사용자가 원하는 음료를 선택하면, 해당 음료에 맞는 메시지를 출력하는 코드다.
let drinkChoice = 2; // 사용자가 선택한 음료 (1: 커피, 2: 녹차, 3: 오렌지 주스, 4: 물)
switch (drinkChoice) {
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
문: 조건식으로 분기 처리하기if
문은 범위나 논리적 조건이 필요한 경우에 더 유리하다. 이번에는 if
문을 사용하여 음료 선택 조건을 처리해보자. switch
문과 동일한 조건을 일치 비교(===
)로 작성하여 동일한 동작을 구현한다.
if (drinkChoice === 1) {
console.log("커피를 선택하셨습니다. 활력을 드립니다!");
} else if (drinkChoice === 2) {
console.log("녹차를 선택하셨습니다. 몸에 좋은 선택이에요.");
} else if (drinkChoice === 3) {
console.log("오렌지 주스를 선택하셨습니다. 비타민 충전 완료!");
} else if (drinkChoice === 4) {
console.log("물을 선택하셨습니다. 건강을 위해 물을 많이 마셔요.");
} else {
console.log("1에서 4 사이의 숫자로 음료를 선택해 주세요.");
}
이렇게 작성한 if
문은 switch
문과 같은 동작을 하며, 실행 결과도 동일하다.
switch
문과 if
문 선택 기준switch
문이 가독성이 좋고, 더 깔끔하게 사용할 수 있다.if
문이 더 효과적이다.switch
문과 if
문 비교: 자료형 일치와 엄격 비교switch
문과 if
문은 모두 조건에 따라 분기 처리하지만, switch
문은 자료형까지 일치해야 조건을 충족한다는 차이가 있다.
아래와 같이 drinkChoice
에 문자열 "2"
를 할당하면, switch
문에서는 자료형이 일치하지 않아 default
부분이 실행된다.
let drinkChoice = "2"; // 문자열로 할당한 경우
switch (drinkChoice) {
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 문 작성
if (drinkChoice == 1) {
console.log("커피를 선택하셨습니다. 활력을 드립니다!");
} else if (drinkChoice == 2) {
console.log("녹차를 선택하셨습니다. 몸에 좋은 선택이에요.");
} else if (drinkChoice == 3) {
console.log("오렌지 주스를 선택하셨습니다. 비타민 충전 완료!");
} else if (drinkChoice == 4) {
console.log("물을 선택하셨습니다. 건강을 위해 물을 많이 마셔요.");
} else {
console.log("1에서 4 사이의 숫자로 음료를 선택해 주세요.");
}
실행 결과:
switch
문에서는 default
가 실행되고,if
문에서는 동등 비교로 인해 문자열 "2"
를 숫자 2
로 해석하여 해당 메시지가 출력된다.1에서 4 사이의 숫자로 음료를 선택해 주세요.
녹차를 선택하셨습니다. 몸에 좋은 선택이에요.
이 차이로 인해 switch
문을 if
문으로 대체할 때는 일치 비교(===
)를 통해 자료형까지 구분하는 것이 안전하다.
switch
문: 고정된 값을 분기 조건으로 사용할 때 유리하며,break
를 통해 각 조건을 안전하게 처리한다.if
문: 범위 조건이 필요하거나 논리적 분기가 필요한 경우에 효과적이며, 동등 비교와 일치 비교를 상황에 따라 적절히 활용한다.switch
문은 엄격한 자료형 비교를 적용하므로,if
문으로 대체할 때는 반드시 등호 세 개를 사용해 일치 비교를 해야 한다.