第四章——选择结构 第五节——if语句及其拓展
1. 什么是if语句?
简单来说,if语句就是程序里的“判断开关”。你可以把它想象成生活中的选择题:
- 如果某个条件成立(比如“你成绩优秀”),就执行某个操作(比如“发奖学金”)。
- 如果条件不成立(比如“成绩不及格”),就执行另一个操作(比如“补考”)。
在C语言里,if语句就是用来让程序根据条件决定“下一步该干嘛”的。
2. 最基础的if语句
语法:
1 | if (条件) { |
举个栗子🌰:
1 | int age = 18; |
- 如果
age大于等于18,就输出“你可以投票了!”;否则,啥也不干。
注意⚠️:
- 条件写在
()里,结果为“真”(非0)或“假”(0)。 - 如果只有一行代码,可以省略大括号
{},但建议还是加上,避免出错。
3. 加上else的“二选一”
有时候需要“如果A成立,做X;否则,做Y”。这时候就要用if-else:
1 | if (条件) { |
例子:
1 | int score = 85; |
- 如果
score大于等于60,输出“恭喜及格!”;否则输出“需要补考哦。”
注意⚠️:
else必须和最近的if配对。如果嵌套太深,容易出错,建议用大括号明确结构。
4. 多条件分支:else if的“多选一”
当有多个条件需要判断时,可以用else if:
1 | if (条件1) { |
例子:
1 | int grade = 85; |
- 程序会从上到下判断,一旦某个条件成立,后面的条件就不再检查。
5. 嵌套if:条件里的条件
有时候需要“条件里的条件”,比如:
1 | if (天气晴朗) { |
在C语言中,嵌套if的写法是:
1 | if (外层条件) { |
例子:
1 | int age = 20, hasLicense = 1; |
6. 常见坑与避坑指南
条件判断的“真假”规则
- C语言中,0是假,非0是真。
- 例如:
if (x)等价于if (x != 0)。
别把
=和==搞混=是赋值,==才是判断相等。- 错误示例:
1
if (x = 5) { ... } // 实际是给x赋值5,条件永远为真!
else匹配最近的if- 如果没有大括号,
else会和最近的if配对,可能导致逻辑错误。 - 建议: 用大括号明确代码块。
1
2
3
4
5if (a)
if (b)
doSomething();
else
doOther(); // 这个else其实是和上面的if(b)配对!
- 如果没有大括号,
逻辑运算符的优先级
&&(与)优先级高于||(或),但低于比较运算符(如>、<)。- 建议用括号明确优先级:
1
if ((a > 5) && (b < 10)) { ... }
短路现象
&&和||有“短路”特性:a && b:如果a为假,b不会被计算。a || b:如果a为真,b不会被计算。
- 例子:
1
if (ptr != NULL && ptr->value > 0) { ... } // 避免空指针访问
7. 总结:if语句的核心思想
- 选择结构:程序根据条件动态决定执行路径。
- 灵活组合:通过
if、else if、else、嵌套if,可以处理复杂的逻辑。 - 注意事项:
- 条件判断的真假规则(0是假,非0是真)。
- 使用大括号明确代码块,避免歧义。
- 注意运算符优先级,避免逻辑错误。
8.补充:关于条件
1. if后面圆括号中的表达式,可以是任意合法的C语言表达式,了可以是任意类型的数据。
2. 无论是否有else子句,if子句中如果只有一条语句,则此语句后的分号不能省略。
9.补充:关于执行条件
首先计算紧跟在if后面一对圆括号内表达式的值。如果表达式值非零,则执行if子句,然后跳过else子句,去执行if语句后的下一条语句;如果表达式的值为零,则跳过if子句,去执行else子句,接着去执行if语句后的下一条语句。
- 标题: 第四章——选择结构 第五节——if语句及其拓展
- 作者: 亓翎_Re-Tikara
- 创建于 : 2026-02-07 02:21:28
- 更新于 : 2026-02-10 02:48:46
- 链接: https://re-tikara.fun/Blog/posts/3281fff4/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。