🧠 運算子 (Operators):編程的「動詞」

各位未來的電腦科學家,你好!歡迎來到這章關於運算子 (Operators) 的重要課程。別擔心這個名詞聽起來很深奧;運算子其實就是我們在程式碼中用來執行動作、進行計算或作出比較的一系列符號。它們就像是「動詞」,告訴電腦該做什麼!

理解運算子至關重要,因為它們讓你能夠編寫複雜的方程式、控制程式流程(例如處理決策邏輯)以及管理數據。只要你能掌握這一章,你就準備好撰寫強大的演算法了!我們馬上開始吧!


第一節:算術運算子 (Arithmetic Operators) —— 進行數學運算

算術運算子是用於數學計算的符號。這些對你來說可能非常熟悉,但當中有兩個「好朋友」——MOD 和 DIV——是編程中比較獨特的。

基礎算術運算子

它們的功能就像你的計算機一樣:

  • + : 加法 (例如:5 + 3 結果為 8)
  • - : 減法 (例如:10 - 2 結果為 8)
  • * : 乘法 (例如:4 * 4 結果為 16)
  • / : 除法 (得出實數,例如:10 / 3 結果為 3.333...)
特殊運算子:DIV 與 MOD

這兩個運算子是專門為處理整數 (integers) 而設計的。它們能幫我們計算一個數字可以完整放入另一個數字多少次,以及剩下的餘數是多少。

比喻:試想想將 17 片薄餅分給 5 個人吃。

  1. DIV (整數除法)
  2. DIV 用於找出整數商(即除法的結果,並捨去任何餘數)。
    例子:17 DIV 5 = 3
    (每個人可以完整分到 3 片薄餅。)

  3. MOD (取模或取餘數)
  4. MOD 用於找出除法後的餘數。它告訴你剩下了多少。
    例子:17 MOD 5 = 2
    (最後剩下了 2 片。)
    你知道嗎? MOD 對於檢查數字是奇數還是偶數非常有幫助!如果 X MOD 2 等於 0,那麼數字 X 就是偶數。

重點總結 (算術):你需要熟悉 +, -, *, /,並且尤其要理解 DIV(得出整數結果)與 MOD(得出餘數)之間的區別。

第二節:關係運算子 (Relational Operators) —— 進行比較

關係運算子(也稱為比較運算子)用於比較兩個數值。它們是用來詢問兩個項目之間關係的問題。

例子:變數 A 是否大於變數 B?

任何關係運算的結果永遠是布林值 (Boolean value),意即答案只有 TRUE(真)或 FALSE(假)。

關係運算子清單
運算子 含義 例子 (結果)
=== 等於 5 == 5 (TRUE)
<>!= 不等於 10 != 5 (TRUE)
> 大於 7 > 3 (TRUE)
< 小於 1 < 0 (FALSE)
>= 大於或等於 8 >= 8 (TRUE)
<= 小於或等於 4 <= 10 (TRUE)
🚨 常見錯誤警示!

在編程中,我們通常使用單個等號 (=) 來進行賦值 (assignment)(將數值儲存進變數,例如 A = 5)。我們使用雙等號 (==) 或 =(取決於偽代碼標準)來進行比較 (comparison)(檢查兩者是否相等,例如 A == 5)。

請務必確認你的考試要求使用的是哪種符號!對於本課程,你應該熟悉使用 === 來檢查是否相等,以及 <>!= 來檢查不相等。

重點總結 (關係):這些運算子用於比較兩個事物,結果永遠是 TRUEFALSE

第三節:邏輯(布林)運算子 (Logical Operators) —— 進行決策

邏輯運算子允許我們將多個關係條件(TRUE/FALSE)組合成一個單一且更大的條件。這對於在程式中編寫複雜的決策(例如在 IF 語句中)是不可或缺的。

三個主要的邏輯運算子是 AND(與)、OR(或)和 NOT(非)。

1. AND 運算子

AND 運算子要求所有條件皆為 TRUE,最終結果才會是 TRUE。如果當中有任何一個條件是 FALSE,整個語句就會是 FALSE。

比喻:要通過駕駛考試,你必須通過理論測試 AND 通過實踐測試。如果你其中一個不及格,你整個考試就不及格。

AND 真值表
條件 A 條件 B A AND B
TRUETRUETRUE
TRUEFALSEFALSE
FALSETRUEFALSE
FALSEFALSEFALSE
2. OR 運算子

OR 運算子只需要至少一個條件為 TRUE,最終結果就會是 TRUE。唯有當所有條件皆為 FALSE 時,OR 語句的結果才會是 FALSE。

比喻:要進入電影院,你必須有門票 OR 有員工證。如果你兩者其一(或兩者皆有),你就能進入。

OR 真值表
條件 A 條件 B A OR B
TRUETRUETRUE
TRUEFALSETRUE
FALSETRUETRUE
FALSEFALSEFALSE
3. NOT 運算子

NOT 運算子單純地反轉或否定條件。它將 TRUE 變為 FALSE,並將 FALSE 變為 TRUE。

例子:如果 isRaining 為 TRUE,那麼 NOT isRaining 就是 FALSE。

NOT 真值表
條件 A NOT A
TRUEFALSE
FALSETRUE
重點總結 (邏輯):AND 很嚴格(需要全部 TRUE)。OR 很靈活(至少一個 TRUE 即可)。NOT 會反轉結果。

第四節:運算子優先順序 (Operator Precedence) —— 運算順序

如果你的程式碼行中包含許多不同的運算子,例如算術、比較和邏輯運算子混合在一起,那會發生什麼事呢?

就像在普通數學中,你會使用 BODMAS(括號、次方、除/乘、加/減)一樣,電腦程式會遵循一種特定的順序,稱為運算子優先順序 (Operator Precedence)

如果你不遵循這個順序,程式算出的答案就會出錯!

優先級層次(由高至低)

電腦會依這個特定的順序執行計算。優先級越高,會越先執行:

  1. ( ) 括號(永遠最先計算,以強制賦予優先權)
  2. NOT(邏輯否定)
  3. 算術運算子 (* / DIV MOD + -)
  4. 關係/比較運算子 (=, <>, <, >, <=, >=)
  5. AND(邏輯合取)
  6. OR(邏輯析取)
優先順序步驟演示

讓我們評估這個運算式,其中 X = 5 且 Y = 10:
(X * 2 > Y) OR (Y - 5 == X)

  1. 步驟 1:括號 ( ) - 計算第一個括號內的運算式:
  2. X * 2 (5 * 2) = 10。
    運算式變為:(10 > Y) OR (Y - 5 == X)

  3. 步驟 2:括號 ( ) - 計算第二個括號內的算術:
  4. Y - 5 (10 - 5) = 5。
    運算式變為:(10 > Y) OR (5 == X)

  5. 步驟 3:關係運算子(在括號內) - 評估比較:
  6. 第一個比較:10 > Y (10 > 10) 結果為 FALSE
    第二個比較:5 == X (5 == 5) 結果為 TRUE
    運算式變為:FALSE OR TRUE

  7. 步驟 4:OR 運算子 - 評估最後的邏輯運算子:
  8. FALSE OR TRUE 結果為 TRUE

整個運算式的最終結果是 TRUE

🧠 記憶小撇步!

不用急著馬上背下整份清單。記住這個順序:
1. Brackets (括號) 先來!
2. NOT 接著是它(它是一個翻轉動作,非常強力)。
3. Arithmetic (算術運算)
4. Relational (關係比較,結果為 TRUE/FALSE)
5. Logical (邏輯運算:先 AND,後 OR)

重點總結 (優先順序):如果你不確定順序,永遠使用括號 () 來控制運算優先順序。如果沒有括號,電腦會遵循這個層級:NOT,然後是算術,然後是比較,最後是邏輯(AND 早於 OR)。

你已經掌握了電腦運算的核心積木!繼續練習 DIV 和 MOD 的運作,並試著為邏輯運算子畫出真值表。做得好!