首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言條件語句完全指南:if/else/switch 實戰

     編輯:關於C語言

條件判斷本質

C 語言中非 0 為真,0 為假。任何表達式皆可作為條件。

if 語句

if (表達式) 語句1;
// 多語句
if (表達式) {
    語句體;
}

if-else 雙分支

if (表達式) 語句1;
else 語句2;

範例:絕對值

if (x >= 0) y = x;
else y = -x;

if-else if-else 多重分支

if (expr1) stmt1;
else if (expr2) stmt2;
else if (expr3) stmt3;
...
else stmtN;  // 預設分支

自上而下匹配,命中即執行並跳出結構。

嵌套陷阱與 {} 關鍵作用

// 錯誤:else 匹配最近的 if
if (x > 20 || x < -10)
    if (y <= 100 && y > x)
        printf("Good");
    else
        printf("Bad");  // 屬於內層 if

// 正確:用 {} 明確歸屬
if (x > 20 || x < -10) {
    if (y <= 100 && y > x)
        printf("Good");
}
else
    printf("Bad");  // 屬於外層 if

規則:else 永遠匹配最近的未配對 if。

實戰範例

1. 數字符號判斷

float num; scanf("%f", &num);
if (num > 0) printf("plus");
else if (num < 0) printf("negative");
else printf("zero");

2. 絕對值(庫函數 fabs() 更佳)

#include <math.h>
y = fabs(x);

3. 分段函數

if (x < -5) y = x;
else if (-5 <= x && x < 1) y = 2*x + 5;
else if (1 <= x && x < 4) y = x + 6;
else y = 3*x - 2;

注意:C 不支援連續不等式 -5 <= x < 1,必須拆分為 -5 <= x && x < 1。

4. 三數由大到小排序

巢狀 if 實現全排列比較,{} 必不可少。

switch-case 多路分支

switch (變量) {
    case 常量1: 語句1; break;
    case 常量2: 語句2; break;
    ...
    default: 語句N;
}
  • case 只能是整型常量表達式(int/char/enum),不可為浮點數。
  • 無 break 會貫穿執行下一 case(fall-through)。
  • 適用於「單一變量、多個離散值」場景,比多重 if-else 更清晰高效。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved