判断语句
概念说明
判断语句用于根据条件不同执行不同分支。
在 C 语言里,最常见的条件分支写法是 if 系列和 switch。
这两种写法解决的是不同问题:
if更适合范围判断、组合条件和布尔表达式。switch更适合“某个表达式等于哪一个离散常量值”的场景。
分支写得清不清楚,往往比“能不能跑”更重要。 同样的逻辑,如果选择了更贴切的分支形式,后续维护会轻松很多。
语法/规则
if条件表达式的结果为0时表示假,非0时表示真。else if会按书写顺序依次判断,命中后后续分支不会再执行。switch适合判断整数、字符或枚举这类离散值,不适合范围判断。case后面必须是编译期可确定的常量表达式。switch中如果不写break,程序会继续向下执行后续case,这叫贯穿或落空。default不是必须写,但在分支不完整时通常建议保留。- 对于复杂条件,与其追求一行写完,不如用括号和局部变量把意图写清楚。
示例
| |
输出结果:
| |
常见错误
- 在判断里把
==错写成=,结果条件表达式被赋值而不是比较。 switch分支漏写break,导致程序继续落入后续分支。- 用
switch去写区间判断,结果代码越来越绕,还不如直接使用if。 - 花括号省略过多,后续改动时很容易出现“实际只控制了一条语句”的问题。
- 条件表达式写得过于复杂,自己一个月后都看不懂原来想表达什么。