機
器
人
是非對錯 - if 和 else
這個章節的重點,在於帶領讀者理解物件導向的概念,而非介紹單一個程式語法。此章節的程式語法和 JavaScript 等程式語言相近,但並非任何真實程式語言。請專注於章節中的概念部分,而非語法部分。
「 if 」判斷式
假設我們在撰寫一個網站,在登入時需要輸入正確的驗證碼才能正常登入,那我們便需要邏輯上的判斷。於是我們想要寫一個程式,在輸入正確時印出「登入成功」,在輸入錯誤時印出「登入失敗」。我們先從簡單的例子下手:
if(true){
print('yes!');
}
上述程式碼,就是傳說中的if 判斷式。電腦在執行時,會選擇性地執行大括號 {}
程式。什麼意思呢?當電腦看到 if
時,會試著尋找它後面的括號 ()
,假設括號裡是 true
,那麼電腦就會執行大括號裡的程式碼;反之,假設括號裡是 false
,那麼電腦將不會執行程式碼。
話又說回到最一開始的問題:寫出一個可以判斷驗證碼是否輸入正確的程式。假設我們已經有這段程式碼:
input = 1233;
print('登入成功');
其中,input
變數所帶的值是使用者所輸入的驗證碼。倘若今天,正確的驗證碼是 1233 ,那麼我們該如何達成目標呢?很簡單,只要使用 if 判斷式,就能輕鬆達成!像這樣:
input = 1233;
if(input == 1233){
print('登入成功');
}
在執行時,電腦會這麼想:
「input == 1233」,而「input」代表的值是「1233」。;所以,「 input == 1233」,就是「1233 == 1233」; 因此: 「 input == 1233」就是「 true 」的意思
於是,上述那段程式碼,在經過電腦的思考後,會變成下面這樣:
if(true){
print('登入成功');
}
螢幕上將會印出「登入成功」四個字。
「 else 」在「 if 」之後
假設我們輸入「 1233 」,那麼螢幕上會印出「登入成功」的字樣。但是,如同我們最一開始所說的,在輸入錯誤時,我們得在螢幕上印出「登入失敗」的字樣。這又要怎麼做呢?
input = 1234;
if(input == 1233){
print('登入成功');
}
以上是我們上一個小節所寫的,並且我們將輸入的值由「1233」改作「1234」。如此一來,螢幕上應當要印出「登入失敗」的字樣。怎麼做呢?其實只要加上一些小小的修改,就可以達到目標嘍!
input = 1234;
if(input == 1233){
print('登入成功');
}else{
print('登入失敗');
}
我們在程式的最後加入 else
。 else
一般會出現在 if
的大括號後面。假設今天電腦在執行時,發現在 if
後面括號 ()
內出現了 false
,那麼電腦就不會執行 if
後面大括號 {}
裡的程式,反而會執行 else
後大括號 {}
裡的程式。
「 else if 」?!
很多程式語言中,除了 if
與 else
之外,還有一個 else if
。你可能會好奇,else if
存在的意義是什麼?不是已經有 if
跟 else if
了嗎?其實, else if
的存在除了可以幫助電腦節省許多的判斷時間,還有很多其他的好處。所以它究竟是什麼?
讓我們用這個六分鐘的短片,學習 else if
的用途,並且為前面的 if
和 else
作一個收尾與複習。
想想看
還有什麼情況下,我們會用到「 if 」和「 else 」?是不是很多時候我們都需要「 if 」和 「 else 」才行?
想想看 - 進階
a = 0;
if(a < 1){
print(a);
}if(a < 2){
print(a);
}
a = 0;
if(a < 1){
print(a);
}else if(a < 2){
print(2);
}
上面兩塊程式碼幾乎一模一樣,只有其中「 if 」和「 else if 」的差別而已。假設我們要執行這兩段程式,會不會有一樣的結果?為什麼?
最後,讓我們看個動畫收尾。