C++ if else语句用法详解(附带实例)
C++ 中的 if 语句用于对多分支情况进行判断,包括简单 if 语句、if else 语句和 else if 语句。
if 语句相当于汉语中的“如果……”。用流程图来表示 if 语句,如下图所示。

图 1 简单if语句流程图
【实例 1】判断输入的数是否为奇数。定义一个变量,用来输入一个数值。判断该数奇偶性的方法为:将该数与 2 求余,余数为 0 表示能被 2 整除,为偶数;余数不为 0 则说明为奇数。如果取余不为 0,就输出“The value is odd number”。

图 2 实例 1 流程图
程序分以下两步执行:
使用 if 语句的注意事项如下:
1) 当 if 后的执行语句仅有一句时,可以将 if 条件判断和执行语句写在一行中。例如:
2) 当执行语句有多条,为复合语句时,需使用大括号括起来,形成执行语句块。例如:
3) if 语句后不能添加英文分号(;),否则编译器会报错。例如:
注意,else 不能单独使用,必须和关键字 if 一起出现。
if else 语句相当于汉语里的“如果……否则……”。用流程图来表示if else语句,如下图所示。

图 3 if else语句流程图
【实例 2】根据分数判断成绩等级是否为 A。定义一个变量,用来输入分数。如果分数大于或等于 90,输出“It is A”,否则输出“It is not A”。具体代码如下:

图 4 实例 2 的流程图
用户输入一个数值,将该数值赋值给 iInput 变量,判断用户输入的数据是否大于或等于 90,如果条件成立,输出“It is A”,否则输出“It is not A”。
运行程序,结果为:
用流程图来表示 else if 判断语句,如下图所示:

图 5 else if语句流程图
【实例 3】根据成绩划分等级。某学校参照如下方式划分学生的成绩等级:
根据用户输入的成绩,输出与该成绩对应的等级。使用 else if 语句实现,具体代码如下:
在 if else 语句中嵌套其他 if else 语句,形式如下:
【实例 3】判断是否是闰年。用 if 嵌套语句判断输入的年份是否为闰年。闰年的判断条件为:能被 4 整除但不能被 100 整除,或者能被 400 整除的年份都为闰年。具体代码如下:
使用逻辑运算符,可以简化判断是否是闰年的实例代码,用一条判断语句来完成。
初学者极易在多重 if 嵌套结构中弄混哪个 else 和哪个 if 是一对,从而导致错误。为了避免出错,一定要多用复合语句和“{}”,同时做好层级对应和缩进。
C++ if语句
if 语句的语法形式如下:if(表达式) 语句块;其中,“表达式”一般为关系表达式,表示判断条件,其运算结果为真(true)或假(false)。如果条件成立,则表达式结果为真,执行下方的语句块;如果条件不成立,则表达式结果为假,直接跳过下方的语句块。
if 语句相当于汉语中的“如果……”。用流程图来表示 if 语句,如下图所示。

图 1 简单if语句流程图
【实例 1】判断输入的数是否为奇数。定义一个变量,用来输入一个数值。判断该数奇偶性的方法为:将该数与 2 求余,余数为 0 表示能被 2 整除,为偶数;余数不为 0 则说明为奇数。如果取余不为 0,就输出“The value is odd number”。
#include <iostream> using namespace std; int main() { int iInput; cout << "Input a value:" << endl; cin >> iInput; // 输入一个整型数 if(iInput % 2 != 0) // 如果该数不能被 2 整除 cout << "The value is odd number" << endl; }运行结果为:
Input a value:
13
The value is odd number

图 2 实例 1 流程图
程序分以下两步执行:
- 定义一个整型变量 iInput,然后使用 cin 获得用户输入的整型数据。
- 变量 iInput 的值与 2 进行求余(%)运算,如果运算结果为 1,表示用户输入的是奇数,输出“The value is odd number”;如果运算结果为 0,则不进行任何输出,程序执行完毕。
使用 if 语句的注意事项如下:
1) 当 if 后的执行语句仅有一句时,可以将 if 条件判断和执行语句写在一行中。例如:
if(iInput%2!=0) cout << "The value is odd number" << endl;但不建议这么写,因为不便于阅读。
2) 当执行语句有多条,为复合语句时,需使用大括号括起来,形成执行语句块。例如:
if(iInput%2!=0){ cout << "The value is odd number" << endl; //...... }
3) if 语句后不能添加英文分号(;),否则编译器会报错。例如:
if(i>100); // 书写错误 {......}
C++ if else语句
if else 语句使用 if 和 else 两个关键字,对不满足条件时的操作也做了说明。其语法形式如下:if(表达式) { 语句块1; }else{ 语句块2; }其中,“表达式”一般为关系表达式,表示判断条件,其运算结果为真或假(true 或 false)。表达式的值为真,则条件成立,执行语句块 1;表达式的值为假,则条件不成立,执行语句块 2。
注意,else 不能单独使用,必须和关键字 if 一起出现。
if else 语句相当于汉语里的“如果……否则……”。用流程图来表示if else语句,如下图所示。

图 3 if else语句流程图
【实例 2】根据分数判断成绩等级是否为 A。定义一个变量,用来输入分数。如果分数大于或等于 90,输出“It is A”,否则输出“It is not A”。具体代码如下:
#include <iostream> using namespace std; int main() { int iInput; cin >> iInput; // 输入学生分数 if(iInput >= 90) // 如果分数大于或等于 90 分 cout << "It is A" << endl; else // 否则,即如果分数小于 90 分 cout << "It is not A" << endl; }用流程图描述实例 2 的执行过程,如下图所示:

图 4 实例 2 的流程图
用户输入一个数值,将该数值赋值给 iInput 变量,判断用户输入的数据是否大于或等于 90,如果条件成立,输出“It is A”,否则输出“It is not A”。
运行程序,结果为:
99 It is A
C++ else if语句
else if 语句可以对多个分支进行多次判断,每判断一次就缩小一定的检查范围。其语法形式如下:if(表达式 1){ 语句块 1; } else if(表达式 2){ 语句块 2; } ... else if(表达式 m){ 语句块 m; } else{ 语句块 n; }其中,“表达式1”“表达式2”…“表达式m”均为关系表达式,表示判断条件,其运算结果为真或假(true 或 false)。如果表达式 1 为真,执行语句块 1;否则判断表达式 2,如果表达式 2 为真,就执行语句块 2;否则判断表达式 3……以此类推,如果表达式 m 也为假,就执行最后的语句块 n。
用流程图来表示 else if 判断语句,如下图所示:

图 5 else if语句流程图
【实例 3】根据成绩划分等级。某学校参照如下方式划分学生的成绩等级:
- very good:大于或等于90分;
- good:大于或等于70分,小于90分;
- normal:大于或等于60分,小于70分;
- failure:小于60分。
根据用户输入的成绩,输出与该成绩对应的等级。使用 else if 语句实现,具体代码如下:
#include <iostream> using namespace std; int main() { int iInput; cin >> iInput; // 输入学生分数 if(iInput % 4 == 0) { if(iInput % 100 != 0) cout << "very good" << endl; else if(iInput % 400 == 0) cout << "good" << endl; else cout << "normal" << endl; } else cout << "failure" << endl; }运行结果为:
80
very good
- 如果分数大于或等于 90 分,就输出“very good”;
- 否则继续判断分数是否小于 90 分但大于或等于 70 分,如果条件成立,就输出“good”;
- 以此类推,最后判断是否小于 60 分,如果条件成立,就输出“failure”。
注意,本例最后没有再使用 else 关键字进行判断。
C++ if语句的嵌套
前面介绍的 3 种 if 语句可以相互嵌套。例如,在 if 语句中嵌套 if else 语句,形式如下:if(表达式 1) { if(表达式 2) 语句块 1; else 语句块 2; }
在 if else 语句中嵌套其他 if else 语句,形式如下:
if(表达式 1) { if(表达式 2) 语句块 1; else 语句块 2; } else { if(表达式 3) 语句块 1; else 语句块 2; }
注意,当分支情况复杂,需要进行多重嵌套时,要格外小心,必须确保大括号成对出现,即代码中不能出现无法配对的 { 或 }。书写上,要注意代码层级,做好缩进,即同一层级的代码要保持同样的缩进。这样编写的代码才会结构清晰,阅读方便,逻辑上也更不容易出错。条件判断语句有多种嵌套方式,可以根据具体需要进行设计,但一定要注意逻辑关系的正确处理。
【实例 3】判断是否是闰年。用 if 嵌套语句判断输入的年份是否为闰年。闰年的判断条件为:能被 4 整除但不能被 100 整除,或者能被 400 整除的年份都为闰年。具体代码如下:
#include <iostream> using namespace std; int main() { int iYear; cout << "please input number" << endl; cin >> iYear; // 输入年份 if(iYear % 4 == 0) // 如果年份能被 4 整除 { if(iYear % 100 == 0) // 如果年份能被 4 整除外,还能被 100 整除 { if(iYear % 400 == 0) // 如果年份能被 4、100 整除外,还能被 400 整除 cout << "It is a leap year" << endl; else cout << "It is not a leap year" << endl; } else cout << "It is a leap year" << endl; } else cout << "It is not a leap year" << endl; // 如果年份不能被 4 整除 }运行结果为:
please input number
2025
It is not a leap year
使用逻辑运算符,可以简化判断是否是闰年的实例代码,用一条判断语句来完成。
#include <iostream> using namespace std; int main() { int iYear; cout << "please input number" << endl; cin >> iYear; // 输入年份 if(iYear % 4 == 0 && iYear % 100 != 0 || iYear % 400 == 0) // 如果年份能被 4 整除但不能被 100 整除,或者能被 400 整除 cout << "It is a leap year" << endl; else // 否则 cout << "It is not a leap year" << endl; }运行结果为:
please input number
2024
It is a leap year
总结
在使用 if else 语句时,一定要注意,else 和 if 关键字必须成对出现,且遵守临近原则,即 else 关键字和距离最近的 if 语句构成一对。初学者极易在多重 if 嵌套结构中弄混哪个 else 和哪个 if 是一对,从而导致错误。为了避免出错,一定要多用复合语句和“{}”,同时做好层级对应和缩进。