if/else문 대신 사용할 수 있다.
if/else 문은 논리적 참, 거짓으로 실행할 코드 블록을 결정한다.
하지만 switch 문은 논리적 참, 거짓보다는 다양한 상황(case)에 따라 실행할 코드 블록을 결정할 때 사용한다.
switch (표현식) {
case 표현식1:
switch 문의 표현식과 표현식1이 일치하면 실행될 문;
break; - 코드 블록에서 탈출하는 역할
case 표현식2:
switch 문의 표현식과 표현식2이 일치하면 실행될 문;
break;
default:
switch 문의 표현식과 일치하는 case문이 없을 때 실행될 문;
break;
}
문제
두 개의 숫자와 연산자를 입력받아 해당하는 계산 결과를 반환하는 계산기 함수를 작성하세요.
조건
num1과 num2는 숫자입니다.
operator는 문자열로, +, -, *, / 중 하나입니다.
operator가 위의 네 가지 연산자 중 하나가 아닌 경우에는 "유효하지 않은 연산자"를 반환합니다.
operator에 따라 적절한 계산을 수행하여 결과를 반환합니다.
function test(num1, num2, operator) {
let result;
switch(operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default: '유효하지 않은 연산자';
break;
}
return result;
}
console.log(test(3,6,'-')); /-3/
문제
주차비 계산기 함수 작성하기 (주차 시간에 따른 주차비를 계산하기)
조건
차량의 주차 시간 (단위: 시간)
기본 주차 요금 (주차 시간이 1시간 이하일 때의 요금) - 1000원 (시간의 숫자만 생각)
1시간을 초과하면 추가 주차 시간 당 요금 - 500원
function parkingPay(parkingTime) {
let totalPay;
let basePay = 1000
let addPay = 500
switch (parkingTime) {
case 1:
totalPay = basePay;
break;
default:
totalPay= basePay + ((parkingTime - 1) * addPay);
break;
}
return totalPay;
}
console.log(parkingPay(3));
문제
등급별 할인율 적용하기
조건
구매한 상품의 금액 및 회원등급에 따른 할인율이 적용된 가격을 출력
회원 등급 : "일반", "실버", "골드", "플래티넘", "다이아"
할인율: 일반 - 할인없음, 실버 - 5%, 골드 - 10%, 플래티넘 - 15%, 다이아 - 20%
function totalPay(productAmount, rate) {
let discountPrice;
switch (rate) {
case '실버':
discountPrice = productAmount * 0.95;
break;
case '골드':
discountPrice = productAmount * 0.9;
break;
case '플레티넘':
discountPrice = productAmount * 0.85;
break;
case '다이아':
discountPrice = productAmount * 0.8;
break;
default:
discountPrice = productAmount;
break;
}
return discountPrice;
}
console.log(totalPay(10000, '실버'));
console.log(totalPay(10000, '골드'));
console.log(totalPay(10000, '플레티넘'));
console.log(totalPay(10000, '다이아'));
console.log(totalPay(10000, '일반'));
좋은 글이네요. 공유해주셔서 감사합니다.