尚未建立名稱
能量:0
我的帳號中心
問 學Bot 任何問題!
首頁&搜尋
最愛&收藏
所有課程
分享資源
帳號設定
關於學呀
線上募款
多重判斷式
編輯章節
EDU-MD
Google 教室
加至書籤
# switch ![](https://cdn.technologyadvice.com/wp-content/uploads/2019/02/Using-Change-Management-for-ERP-Onboarding-1024x821.jpg) ## 好多的 if else ... ::: suggestion 這個章節的重點,在於帶領讀者理解物件導向的概念,而非介紹單一個程式語法。此章節的程式語法和 JavaScript 等程式語言相近,但並非任何真實程式語言。請專注於章節中的概念部分,而非語法部分。 ::: 這次我們來寫一個程式,可以把成績等第變成分數。假設輸入「優」,我們就印出「>90」;輸入「甲」,就印出「80~89」;輸入「乙」,就印出「70~79」;以此類推。如果單純使用「 if 」跟「 else 」,我們的程式將會長得像這樣: ``` input = "優"; if(input == "優"){ print(">90"); }else if(input == "甲"){ print("80~89"); }else if(input == "乙"){ print("70~79"); }else if(input == "丙"){ print("60~69"); }else if(input == "丁"){ print("<60"); } ``` 實際看來並不難,對吧!但是,一直重複 `if` 和 `else if` 真是讓人心煩,假設今天要寫二十個 `else if` ,那麼不管是寫程式或者讀程式的人,都會感到疲倦。於是,`switch` 就出現了。我們可以將上述程式碼改成這樣: ``` input = "優"; switch(input){ case "優": print(">90"); break; case "甲": print("80~89"); break; case "乙": print("70~79"); break; case "丙": print("60~69"); break; case "丁": print("<60"); break; default: print("輸入錯誤"); break; } ``` 如此一來,雖然程式的量增加了,但是卻更容易修改、更容易讀懂。使用 `switch` 時,**在括號** `()` **內輸入要比較的變數**,在此我們比較的是 `input` 這個變數。接著在**大括號** `{}` **裡,我們要列出在不同情況下對應的動作**。 我們使用 `case` 來告訴電腦不同情況對應的不同動作。以上面的程式碼作為舉例 `case "優"` 就是「在 `input == "優"` 的情況下 」的意思。而**在** `case` **後面的冒號** `:` **之後,我們告訴電腦要做什麼事**。當我們的指令下完了,就**在最後加上** `break` ,告訴電腦我們這個 `switch` 判斷式已經完成了。 你可能會好奇:那最後的 `default` 是什麼? 原來,`default` **就是在情況沒有被指名時執行的**。假設 `input` 的值是「戊」,那麼電腦將會找不到對應的值,因為我們只告訴電腦「優、甲、乙、丙、丁」的對應動作。以這個例子來看,當我們輸入「戊」時,螢幕上將會印出「輸入錯誤」。 ## break?! - 進階 好奇的你,可能想知道為什麼在 `switch` 裡,要放這麼多的 `break` 。這是一部對於初學者來說較難的影片,你可以暫時忽略影片中的語法細節,仔細看看當 `switch` 裡沒有 `break` 後會發生什麼事情。 ::: youtube GSja2w-HN20 :::
複製內容