Operators & Expressions

運算與表達式

程式語言一 · 導覽投影片

→ / space 前進  回 Esc 總覽 F 全螢幕
導覽:建框架。完整內容在 PDF,可跑範例在 index。

01運算子家族

類別運算子結果
算術+ - * / %數值(/ 整數會截斷)
關係== != > < >= <=1 或 0
邏輯&& || !1 或 0(非零=真)
遞增遞減++ --變數 ±1

關係與邏輯的結果是整數,可以繼續當數字算。

02整數除法與 %

7 / 3 = 2(整數截斷,要小數用 7.0/3)。% 取餘數、只能用整數。

  • 判奇偶 n % 2、取個位 n % 10、循環 i % 3
  • 負數:除法向零截斷、餘數符號跟被除數(`-7 % 3 = -1`)

03== 不是 = (致命差異)

int x = 5;
if (x = 3) ...   // 指派!回傳 3(非零=真)→ 永遠執行
要比較用 ==(兩個等號)。防禦寫法 if (3 == x),誤寫 `=` 會編譯錯。另:3 > 2 > 1 不是連續比較(由左到右算得 0),要寫 3>2 && 2>1

04邏輯與短路求值

&& 全真才真、|| 有真就真、! 反轉。

if (x != 0 && 10/x > 2)  // x==0 時右邊不算 → 不會除以零

短路求值:左邊已能決定結果,右邊不執行。不只省效能,更是安全機制(避免除以零、空指標)。

05++ 前綴 vs 後綴

int i=5, a=i++;   // a=5(先用舊值),之後 i=6
int j=5, b=++j;   // b=6(先加再用),之後 j=6

單獨一行兩者相同;放在運算式裡值差很多。

06優先序:不確定就加括號

* / %+ - > 關係 > &&|| > 指派。

混合型別自動提升:int + double → double不確定就加括號,可讀又安全。

next

接著動手

PDFindex 跑 %/關係/短路/++ → 本地練習 5 題 → Quizlet + 測驗卷 ≥ 90%。