機
器
人
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");
}
實際看來並不難,對吧!但是,一直重複 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
後會發生什麼事情。