Day11:「如果肚子餓了,就吃香蕉」--流程判斷邏輯
最簡單的流程控制,就是「如果」符合某個條件,就去做某件事,也就是if…else這樣的程式語法。
就像「如果肚子餓了,就吃香蕉」,猴子嗎?
例如:「打不過,逃!」這是江南七怪的老五南樵子在學生郭靖要出江湖闖蕩時,提醒郭靖的話。如果滿足「打不過」這個條件,就做「逃」這個動作。
如果條件不只一個,可以使用 else…if 來新增條件。
回到郭靖的例子:
我想隨機選出1到7之間的數字,用來表示江南七怪的排行,例如數字等於1就印出「飛天蝙蝠–柯鎮惡」,數字等於2就印出「妙手書生–朱聰」,依此類推。
Math.random() 會隨機產生 0 到 1 之間的小數。 而 Math.ceil(x) 會將x無條件進位。
寫了這麼落落長的一段,看得眼都花了,if …. else ….也判斷了7次,就效能上來說比較差。
JavaScript還有另一種的switch條件判斷式,適合這樣的情況。
switch括號中可以放入「運算式」、「變數」或「值」,如果符合case後面所列出來的條件,就執行那個case區塊的程式敘述。如果都不符合則執行default區塊的程式敘述。
當滿足case列出來的條件,執行完程式敘述,break指令會中指流程判斷,不去執行後面的case條件判斷。
參考資料
switch…case 和 if…else效率比較和優化
JavaScript 基礎知識-switch & if else 的判別差異
avaScript 的 if 跟 switch 效能
[http://tw.gitbook.net/javascript/javascript_switch_case.html]
Day11:「如果肚子餓了,就吃香蕉」--流程判斷邏輯
https://popeye-ux.github.io/2021/09/11/21-day11-ifElse/