程序決策的核心在於「比較」與「邏輯判斷」。C語言提供豐富的關係運算符、邏輯運算符,配合三種形式的 if 語句,構建靈活的分支結構。
| 運算符 | 含義 | 優先級 | 結合性 |
|---|---|---|---|
| < | 小於 | 高 | 左結合 |
| <= | 小於或等於 | ||
| > | 大於 | ||
| >= | 大於或等於 | ||
| == | 等於 | 低 | |
| != | 不等於 |
關鍵規則:
5 > 0 值為 1,(a=3) > (b=5) 值為 0。a > (b > c)、a != (c == d) 均合法,按左結合性求值。| 運算符 | 名稱 | 目數 | 結合性 | 優先級(高→低) |
|---|---|---|---|---|
| ! | 非 | 單目 | 右結合 | ! > && > || |
| && | 與 | 雙目 | 左結合 | |
| || | 或 | 雙目 | 左結合 |
求值規則(短路求值):
&&:兩側皆真才為真;左側假則不再算右側。||:任一真即為真;左側真則不再算右側。!:真變假,假變真。真假判定: C語言中 0 為假,非 0 為真。邏輯運算結果以 1/0 表示,但判斷時任何非零值皆視為真。例:5 && 3 → 1,5 || 0 → 1。
if(表達式) 語句;
// 表達式為真執行語句,否則跳過
例:輸入兩數較大者
max = a;
if(max < b) max = b;
if(表達式) 語句1; else 語句2;
// 真執行語句1,假執行語句2
例:輸出較大數
if(a > b) printf("max=%d", a);
else printf("max=%d", b);
if-else if 鏈與 switch 用於多向選擇,邏輯上可互換,但 switch 針對離散常量更高效。
char c='k'; int i=1,j=2,k=3; float x=3e5,y=0.85;
printf("%d,%d\n", 'a'+5=k+1); // 字符按ASCII碼參與運算
printf("%d,%d\n", 1
熟練掌握運算符優先級、結合性與真假判定規則,是寫出正確條件判斷、避免邏輯錯誤的關鍵。建議多做手算練習,強化對表達式求值順序的直覺。