| 運算符 | 意義 |
|---|---|
| < | 小於 |
| <= | 小於或等於 |
| > | 大於 |
| >= | 大於或等於 |
| == | 等於 |
| != | 不等於 |
< <= > >= 優先級高於 == !=
void main() {
char c='k'; int i=1,j=2,k=3; float x=3e5,y=0.85;
printf("%d,%d\n", 'a'+5=k+1); // 1,0
printf("%d,%d\n", 1
k==j==i+5:左結合 → (k==j)==i+5 → 0==6 → 0。
| 運算符 | 意義 | 目數 | 結合 |
|---|---|---|---|
| && | 邏輯與 | 雙目 | 左 |
| || | 邏輯或 | 雙目 | 左 |
| ! | 邏輯非 | 單目 | 右 |
優先級:算術 > 關係 > 邏輯與 > 邏輯或 > 賦值
&&:兩真才真,否則假||:一真即真,雙假才假!:真變假,假變真
void main() {
char c='k'; int i=1,j=2,k=3; float x=3e5,y=0.85;
printf("%d,%d\n", !x*!y, !!!x); // 0,0
printf("%d,%d\n", x||i&&j-3, i
if (運算式) 語句;
// 真執行,假跳過
範例:輸入兩數較大者
max = a;
if (max < b) max = b;
if (運算式) 語句1; else 語句2;
// 真執行1,假執行2
if (運算式1) 語句1;
else if (運算式2) 語句2;
else if (運算式3) 語句3;
...
else 語句n;
// 依序判斷,首真執行對應語句,全假執行 else
char c = getchar();
if (c < 32) printf("控制字符\n");
else if (c>='0' && c<='9') printf("數字\n");
else if (c>='A' && c<='Z') printf("大寫字母\n");
else if (c>='a' && c<='z') printf("小寫字母\n");
else printf("其他字符\n");