在 javascript 中,我們可以像這樣寫一段 switch 的判斷式來根據不同條件顯示不同結果:
let city="Taipei";
switch(city){
case "Taipei":
console.log("台北市");
break;
case "New Taipei":
console.log("新北市");
break;
case "Taoyuan":
console.log("桃園市");
break;
default:
console.log("其他");
}
你可能會覺得 switch 的 case 代表的就是 if 的判斷,不過如果有一個判斷式寫成這樣:
let age=10;
switch(age){
case (age > 18):
console.log("已成年");
break;
case (age == 18):
console.log("剛好 18");
break;
case (age < 18):
console.log("未成年");
break;
default:
console.log("其他");
}
得到的結果會是 其他,這是因為在 switch 裡,其實他是判斷
age === (age > 18)
//10 === true
這樣就會直接跑到 default 去了,這時我們可以使用 switch(true) 的做法:
let age=10;
switch(true){
case (age > 18):
console.log("已成年");
break;
case (age == 18):
console.log("剛好 18");
break;
case (age < 18):
console.log("未成年");
break;
default:
console.log("其他");
}
這樣就會等同於使用 if...else,讓我們的變數可以進到判斷式裡去,用這種方法來取代 if...else 可以讓程式可讀性更高,有興趣的可以試試。