Skip to content

C 判断语句

本章介绍 if/else、switch/case 等条件分支结构及最佳实践。

1. if / else

c
if (cond) {
    // ...
} else if (cond2) {
    // ...
} else {
    // ...
}
  • 条件必须为标量(0 为假,非 0 为真)
  • 使用圆括号与大括号提高可读性与安全性

2. 三目运算符

cond ? a : b,适合简单表达式,不宜复杂嵌套。

3. switch / case

c
switch (x) {
    case 1:
        // ...
        break;
    case 2:
        // ...
        break;
    default:
        // ...
}
  • case 值必须是整型常量表达式
  • 小心 break,避免“贯穿”造成逻辑错误(C17 起可用 [[fallthrough]] 注释意图)

4. 常见模式

  • 守卫式返回:对非法输入尽早 return
  • 使用 enumswitch 组织有限状态机

5. 示例

c
#include <stdio.h>

enum Command { CMD_ADD=1, CMD_SUB=2, CMD_MUL=3 };

int calc(int a, int b, enum Command cmd) {
    switch (cmd) {
        case CMD_ADD: return a + b;
        case CMD_SUB: return a - b;
        case CMD_MUL: return a * b;
        default: return 0;
    }
}

int main(void) {
    printf("%d\n", calc(3, 4, CMD_MUL));
    return 0;
}

6. 小结

条件分支是程序控制的基础,保持分支简洁、避免深层嵌套,必要时拆函数。

本站内容仅供学习和研究使用。