switch




好多的 if else ...


這個章節的重點,在於帶領讀者理解物件導向的概念,而非介紹單一個程式語法。此章節的程式語法和 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");
}

實際看來並不難,對吧!但是,一直重複 ifelse 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。瞭解更多
+1 
感謝內容貢獻者 此篇文章由 1 位使用者共同編輯而成,並且由學呀的編輯團隊負責維護。點此查看編輯者名單。