在 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 可以讓程式可讀性更高,有興趣的可以試試。