多重邏輯運算
 課程目錄
 編輯章節
 EDU-MD
 Google 教室
 加至書籤

產生布林值

大於與小於

這個章節的重點,在於帶領讀者理解物件導向的概念,而非介紹單一個程式語法。此章節的程式語法和 JavaScript 等程式語言相近,但並非任何真實程式語言。請專注於章節中的概念部分,而非語法部分。

我們都知道如何比較數字的大小,例如 5 < 6 就是件眾所皆知的事實。在程式中,我們也經常會需要比較數字的大小,例如我們在製作一個改考卷的軟體,必須決定學生成績是否及格,那它就必須知道如何判斷學生分數是否大於 60 分。假設有一個學生成績 58 分,我們要分辨他是否及格,並輸出布林值,那麼我們會這樣寫:

pass = 58 > 60;
print(pass);

結果應當輸出「 false 」,因為「 58 > 60」這件事是錯的,所以「 58 > 60」所代表的就是「 false 」。但是我們很快就會遇上問題,假設有學生考試成績為 60 分:

pass = 60 > 60;
print(pass);

如果執行這段程式碼,我們會發現結果為「 false 」,但常理判斷,60 分應該是及格的。那麼我們該如何解決這個問題呢?相信我們都知道數學中「大於或等於(≧)」的概念,在此便可使用這樣的想法,而在程式中,我們會使用 >= 來表示:

pass = 60 >= 60;
print(pass);

這樣就大功告成了!另外,「小於」和「小於等於」也是相同的用法與概念,他們的符號分別為 <<=

等於與不等於

現在我們要寫一段程式來判斷學生分數是否 100 分,因為老師想要嘉獎滿分的學生。你可能覺得我們會使用「 = 」的符號,但事實上,我們會使用 == 雙等號來表達相等。

good = 100 == 100;
print(good);

螢幕上將會顯示「 true 」,因為 100 等於 100。不幸的是,下一節是數學課,老師打算讓所有沒有 100 分的學生罰站。那麼我們該如何表達「不等於 100 」呢?很簡單,只要把 == 換成 != 就好了:

punished = 98 != 100;

螢幕上將顯示「 true 」,真是個可憐的學生!

想想看

a = 100 = 100;  /*錯誤寫法*/
b = 100 == 100; /*正確寫法*/

為什麼執行第一行程式時會出現錯誤,執行第二行卻不會?電腦分辨的了第一行中兩個 = 的差別嗎?

複合的邏輯運算

綜合以上以及上一個章節所提到的所有概念,這裡將提供一些範例作為參考。範例程式碼中的變數皆如同其名字所表示。
未滿 18 歲但是已婚:

status = is_married && age < 18;

兩次考試成績任一達到及格標準:

status = exam_1 >= 60 || exam_2 >= 60;

體重沒有過重但是體脂肪過高:

status = !is_overweight && is_overfat;

是國際學生但是英文成績低於 70:

status = is_international_student && score < 70;

是登入的但是等級太低:

status = is_logged_in && level < threshold;

資產超過 100 萬、單親、有兩個小孩:

status = wealth > 1000000 && is_divorced && kids == 2;

智商超過 140,而且不是Google的員工:

status = iq > 140 && company != "Google";
 均一平台
 台達磨課師
 酷課雲
 可汗學院
無相關資源
 收起側邊目錄
 
前往目錄頁面