昨天講解了流程控制的if...else (如果符合條件的話,就執行以下程式碼),今天要講的是流程控制中的 switch 語法。可以把 switch 當作是選擇題的概念,假如使用者選擇的值是 A,就執行 A 區域的程式碼;使用者都不選的話,就執行 default 區域的程式碼。
switch (expression) {
case value_1:
// statements_1
[break;]
case value_n:
// statements_n
[break;]
[default:
statements_def
[break;]]
}
用[]
包住代表可寫可不寫,所以break;
和default:
那段都不是必須的。
在提供 switch 語法的實際範例之前須要先學會用 console.log 印出程式執行結果。之前都用 alert() 建立一個彈出視窗,雖然乍看之下很方便,但當要輸出的結果不止一個時,就要按好幾次確認
鍵才能顯示完全部的結果。使用 console.log 印出的結果要在 Chrome 瀏覽器中按下 F12 後選擇 Console 才會看到:
假設要印出多種結果(alert() V.S. console.log):
使用 alert() 要一直按確認才會顯示下個結果
使用 console.log 什麼都不用按就能顯示全部結果,高下立判
switch ('100塊') {
case '100塊':
console.log('給100塊現金');
break;
case '神秘小禮物':
console.log('給一包衛生紙');
break;
default:
console.log('都不選');
}
由於 expression 的值是100塊
,對應到第一個 case 的 value(100塊),所以會印出給100塊現金
:
如果上面的範例不幸忘記加 break ,會發生這樣的結果:
全部 case 的結果通通被印出來了!也就是說如果忘記加 break 的話從符合 value 的 case 區塊以下的指令通通都會被執行喔!