
자바스크립트에서
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문으로 대체할 때는 반드시 등호 세 개를 사용해 일치 비교를 해야 한다.