三元運算符 cond ? expr1 : expr2:cond 真取 expr1,假取 expr2,結果可直接賦值。
#include <stdio.h>
int main() {
int a, b;
printf("請輸入 a:");
scanf("%d", &a);
b = (a > 5) ? 3 : -3; // 單行實現 if-else 賦值
printf("b = %d\n", b);
return 0;
}
請輸入 a:6
b = 3
請輸入 a:2
b = -3
grade = score>=90 ? 'A' : score>=80 ? 'B' : 'C'; (右結合)print(is_valid ? "OK" : "FAIL");| 場景 | 推薦 |
|---|---|
| 簡單賦值/返回 | ?: 緊湊 |
| 多語句/複雜邏輯 | if-else 可讀 |
| 副作用密集 | if-else 避免混淆 |