C 语言条件语句精讲:IF、IF-ELSE 与嵌套 IF-ELSE 完全指南
什么是 C 语言条件语句?
C 语言条件语句 用于根据条件做决策。无条件时语句顺序执行;加上条件后,执行流程随条件求值结果改变,这在 C 语言中称为决策制定。
C 语言通过以下两种构造实现条件语句:
1. if 语句
2. if-else 语句
也称为分支,因为程序根据条件求值结果决定执行哪条语句。
本教程学习内容:
- 条件语句概念
- if 语句
- 关系运算符
- if-else 语句
- 条件表达式
- 嵌套 if-else 语句
- 嵌套 else-if 语句
if 语句
if 是最强大的条件语句之一,负责改变程序执行流程。if 总带条件,先求值条件,再决定是否执行语句体。语法:
if (condition) instruction;
条件求值结果为真(非零)或假(零)。instruction 可以是单条语句或用花括号 { } 包裹的代码块。
下面程序演示 if 用法:
#include<stdio.h>
int main() {
int num1=1;
int num2=2;
if(num1<num2) // 测试条件
{
printf("num1 is smaller than num2");
}
return 0;
}
输出:
num1 is smaller than num2

- 程序初始化 num1=1、num2=2
- 用关系表达式判断大小,num1<num2 为真
- 执行 if 块内打印语句,随后程序正常结束
关系运算符
C 语言提供六个关系运算符构造布尔表达式,返回真/假:
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
注意:相等测试(==)与赋值运算符(=)不同,混淆是极常见错误。
示例:
int x = 41;
x = x + 1;
if (x == 42) {
printf("You succeed!");
}
输出:
You succeed
记住:求值为非零的条件视为真。
int present = 1;
if (present) printf("There is someone present in the classroom \n");
输出:
There is someone present in the classroom
if-else 语句

if-else 是 if 的扩展形式,通用结构:
if (test-expression) {
True block of statements
}
Else {
False block of statements
}
Statements;
若测试表达式为真,执行真块;为假,执行假块。执行完毕自动跳转到 if 块外后续语句。
示例程序判断变量值是否小于 10:
#include<stdio.h>
int main() {
int num=19;
if(num<10) {
printf("The value is less than 10");
} else {
printf("The value is greater than 10");
}
return 0;
}
输出:
The value is greater than 10

- 变量 num=19,用 if-else 判断是否大于 10
- 条件 num<10,真块先执行
- num 大于 10,条件为假,执行 else 块,输出“greater than 10”
C 语言允许多个 if-else 相互嵌套,称为嵌套 if-else。
条件表达式(三元运算符)
用 ?: 运算符表达 if-else,仅各关联一条语句。
示例:
#include <stdio.h>
int main() {
int y;
int x = 2;
y = (x >= 6) ? 6 : x;/* 等价于:if (x >= 5) y = 5; else y = x; */
printf("y =%d ",y);
return 0;
}
输出:
y =2
嵌套 if-else 语句
需要一系列决策时使用嵌套 if-else,即在一个 if-else 内部再使用 if-else。
示例程序:
#include<stdio.h>
int main() {
int num=1;
if(num<10) {
if(num==1) {
printf("The value is:%d\n",num);
} else {
printf("The value is greater than 1");
}
} else {
printf("The value is greater than 10");
}
return 0;
}
输出:
The value is:1
程序用嵌套 if-else 判断数字大小并打印结果。

- 声明 num=1,外层 if 判断是否 <10,为真进入内层
- 内层判断 num==1,为真执行 if 块打印数值
- 程序成功退出
尝试修改变量值观察行为变化。
注意: 嵌套 if-else 缩进至关重要,多层结构下良好缩进才易读。
嵌套 else-if 语句(else-if 阶梯)
多分支决策时使用 else-if 阶梯。通用语法:
if (test-expression 1) {
statement1;
} else if (test-expression 2) {
Statement2;
} else if (test-expression 3) {
Statement3;
} else if (test-expression n) {
Statement n;
} else {
default;
}
Statement x;
自上而下求值,首个为真执行对应语句;全假则执行默认 else。
实例程序按分数输出等级:
#include<stdio.h>
int main() {
int marks=83;
if(marks>75){
printf("First class");
} else if(marks>65){
printf("Second class");
} else if(marks>55){
printf("Third class");
} else{
printf("Fourth class");
}
return 0;
}
输出:
First class

- 初始化 marks=83,else-if 阶梯依次判断
- 首个条件 marks>75 为真,打印 "First class"
- 若首条件假则比较第二条件,以此类推
- 全假则执行默认 else
修改数值观察输出变化。
总结
- 决策/分支语句根据表达式求值选择执行路径
- 也称控制语句,控制程序执行流程
- C 提供 if、if-else 进行决策
- 可嵌套 if-else 处理多路径
- else-if 阶梯适合根据表达式结果检查多种情况
C语言
- C# 表达式、语句与代码块:全面指南与实战示例
- 掌握 C# 条件逻辑:if、if-else、if-else if 与嵌套 if 语句完全指南
- 掌握 C++ 条件语句:if、if-else、嵌套 if 与多重分支全解析
- C 语言条件语句精通:if、else、嵌套与多重分支
- C++ 运算符全解析:类型、示例与示例程序
- 掌握 C++ switch-case:语法、用法与实战示例
- C++ 结构体详解:定义、初始化、指针、函数参数与局限性
- C++ 类与对象实战指南:封装、构造函数、析构函数与访问控制
- 掌握 C++ std::list:语法、函数与实战示例
- C++ Struct 与 Class 核心差异、语法及最佳实践
- C# 枚举——定义、示例与用法详解
- 精通 Java if…else:控制流全解析