處理三種互斥情況(x>y、x 若比較對象是整型/枚舉/字符且值離散固定,`switch`更優: 掌握`if-else if-else`,是構建清晰控制流的基石。標準代碼模板
if (x > y) {
// 情況1:x 大於 y
std::cout << "x > y" << std::endl;
} else if (x < y) {
// 情況2:x 小於 y
std::cout << "x < y" << std::endl;
} else {
// 情況3:x 等於 y(前兩個條件都不滿足)
std::cout << "x == y" << std::endl;
}
執行邏輯解析
關鍵優勢
常見錯誤與避坑
錯誤寫法 問題 修正 三個獨立`if` x=y時前兩個if均false,但若邏輯有疏漏可能多執行 用`else if`串聯 條件順序不當 如先判`x>=y`再判`x>y`,導致`x>y`進入第一分支 按嚴格程度排序:> 、< 、== 漏寫`else` 無兜底,邏輯不全 補全`else`或斷言 浮點數直接比較== 精度問題導致誤判 用`fabs(x-y) < EPS` 進階:switch適用場景
int cmp = (x > y) - (x < y); // 結果:1, -1, 0
switch (cmp) {
case 1: /* x>y */ break;
case -1: /* x