if (조건1) {
//
} else if (조건2) {
//
} else if (조건3) {
//
} else {
//
}
function isPositive(number) {
if (number > 0) {
return "양수";
}
// return undefined (함수 내부에서 기본 값으로 들어가있음 'undefined')
}
console.log(isPositive(1)); // 양수
console.log(isPositive(10)); // 양수
console.log(isPositive(-2)); // undefined
console.log(isPositive(0)); // undefined
function isPositive(number) {
if (number > 0) {
return "양수";
}
// return undefined (함수 내부에서 기본 값으로 들어가있음 'undefined')
else if (number < 0) {
return "음수";
} else {
return "0";
}
}
console.log(isPositive(1)); // 양수
console.log(isPositive(10)); // 양수
console.log(isPositive(-2)); // 음수
console.log(isPositive(0)); // 0
Switch 조건문
// Switch 조건문
switch (조건) {
case 값1:
// 조건이 '값1' 일 때 실행
break;
case 값2:
// 조건이 '값2' 일 때 실행
break;
default:
// 조건이 '값1'도 '값2'도 아닐 때 실행
}
function price(fruit) {
let p;
switch (fruit) {
case "Apple":
p = 1000;
break;
case "Banana":
p = 1500;
break;
case "Cherry":
p = 2000;
break;
default:
p = 0;
}
return p; ↪
// p를 함수 밖으로 반환
}
console.log(price("Apple")); // 1000
console.log(price("Banana")); // 1500
console.log(price("Cherry")); // 2000
console.log(price("Hello")); // 0
현재 price 라는 함수는 switch문을 포함해서 다른 로직이 특별하게 없기 때문에
이렇게 p 라는 변수를 따로 만들어서 그때 그때 값을 할당하고,
바로 return 키워드로 반환하는 것을 최적화해서 바꿔보기 ▼
function price(fruit) {
switch (fruit) {
case "Apple":
return 1000; 👈🏻 return 함수 자체가 여기서 종료됨
case "Banana":
return 1500;
case "Cherry":
return 2000;
default:
return 0;
}
}
console.log(price("Apple")); // 1000
console.log(price("Banana")); // 1500
console.log(price("Cherry")); // 2000
console.log(price("Hello")); // 0
→ Switch문을 사용할 때 기본적으로는 break 키워드를 사용해서
각각의 case 동작이 마무리될 수 있도록 정리를 하지만,
상황에 따라서 위와 같이 return 키워드를 바로 사용한다면 굳이 break 키워드를 사용할 필요 없다.
return 키워드는 switch문을 종료하는 것을 떠나서 함수 자체도 그 자리에서 종료해버리기 때문.
Swtich문에서 기본적으로 break 키워드를 사용하되,
경우에 따라서 return 키워드를 사용한다면 추가로 break 키워드를 사용할 필요는 없다.
✔️ Switch 조건문은 '언제든 if 조건문으로 바꿀 수 있다.'
function price(fruit) {
if (fruit === "Apple") {
return 1000;
} else if (fruit === "Banana") {
return 1500;
} else if (fruit === "Cherry") {
return 2000;
} else {
return 0;
}
}
console.log(price("Apple")); // 1000
console.log(price("Banana")); // 1500
console.log(price("Cherry")); // 2000
console.log(price("Hello")); //0
❓ 어떤게 더 직관적으로 보이고, 어떤게 더 작성하기 용이하다고 보이는가?
이런 구조는 기본적으로 어디까지나 취향에 맞게 사용하면 된다.
if문처럼 fruit 라는 매개변수가 정확하게 특정한 값(과일명)으로 떨어지는 경우,
if조건문 보다는 Switch 조건문을 선호하는 편이다.
if문에서는 '일치 연산자'를 또 따로 다 작성해야되기 때문에 불편하다.
☑️ Switch 조건문은 언제든지 if 조건문으로 작성할 수 있지만,
if 조건문은 상황에 따라서 Switch 조건문으로 작성할 수 없을 수도 있다.
Swtich 조건문은 소괄호 사이에 들어가는 조건이 정확하게 특정한 값으로 떨어질 때, 그런 상황에서만 유용하게 쓸 수 있다.