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

C語言條件表達式與分支語句完全指南:if-else、switch-case、邏輯運算符

     編輯:關於C語言

C語言分支控制全解析:if-else 鏈、switch-case、條件運算符、邏輯運算優先級

系統講解 C 語言條件判斷語法、執行流程、常見陷阱與最佳實踐,構建清晰分支邏輯思維。

if-else 結構體系

單分支


if (condition) statement;

雙分支


if (condition) stmt1; else stmt2;

多條件鏈 (if-else if-else)


if (age >= 18) 
    puts("成年");
else if (age > 4)
    puts("兒童");
else
    puts("幼兒");

關鍵:else 總與最近的未匹配 if 配對,大括號消除歧義。

switch-case 語句


switch (expr) {
    case 1: puts("一"); break;
    case 2: puts("二"); break;
    case 3: puts("三"); break;
    default: puts("其他"); break;
}

switch 核心規則

  • expr 必須為整型/字符/枚舉
  • case 標籤必須為常量表達式
  • 貫穿特性:缺少 break 繼續執行下一 case
  • default 可放任意位置,建議最後
  • 大括號可聲明變量 (C99)

條件運算符 (三元運算符)


max = (a > b) ? a : b;
// 等價於
if (a > b) max = a; else max = b;

適用於簡單賦值/返回值場景,嵌套使用降低可讀性。

關係與邏輯運算符優先級表

優先級運算符結合性說明
1 (最高)() [] -> .左→右基本運算符
2! ~ ++ -- + - * & sizeof右→左一元運算符
3* / %左→右乘除模
4+ -左→右加減
5<< >>左→右移位
6< <= > >=左→右關係運算
7== !=左→右相等性
8&左→右按位與
9^左→右按位異或
10|左→右按位或
11&&左→右邏輯與
12||左→右邏輯或
13?:右→左條件運算符
14= += -= ...右→左賦值
15 (最低),左→右逗號運算符

常見陷阱與最佳實踐

陷阱錯誤代碼正確代碼說明
賦值代比較if (a = 5)if (a == 5)= 返回值參與判斷
邏輯短路if (p && *p)if (p != NULL && *p)p 為 NULL 時不解引用
switch 貫穿case 1: ... case 2: ...case 1: ... break;需顯式 break
浮點比較if (f == 0.0)if (fabs(f) < EPS)精度誤差

編碼風格建議

  • 複雜條件提取為布爾變量/函數
  • 正向條件優先,減少否定邏輯
  • switch 覆蓋所有枚舉值,配合 default: assert(0)
  • 大括號統一風格,即使單語句也加括號

清晰的分支邏輯是代碼可讀性與正確性的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved