1. 什么是if-else条件语句?¶
在编程中,我们经常需要根据不同的情况执行不同的操作。比如,判断考试分数是否及格,决定是否输出“合格”或“不合格”;或者判断天气是否下雨,决定是否提醒带伞。这时候,就需要用到条件语句——最基础的就是 if-else 语句。
if-else 的核心思想是:如果某个条件成立,就执行一段代码;否则,执行另一段代码。它让程序拥有了“决策能力”,不再是简单的顺序执行。
2. if-else的基本语法¶
C++中 if-else 的语法结构有以下几种常见形式:
2.1 单条件判断(if)¶
if (条件表达式) {
// 当条件表达式为 true 时执行的代码块
}
- 条件表达式:必须是一个能返回布尔值(
true或false)的表达式,比如score >= 60(成绩是否及格)。 - 代码块:用大括号
{}包裹的一段代码,当条件成立时执行。如果只有一条语句,大括号可以省略,但建议养成写大括号的习惯,避免逻辑错误。
2.2 二选一判断(if-else)¶
if (条件表达式) {
// 条件成立时执行
} else {
// 条件不成立时执行
}
- 如果条件表达式为
true,执行if后的代码块;否则,执行else后的代码块。
2.3 多条件判断(else if)¶
当需要判断多个条件时,用 else if 连接后续条件,避免嵌套 if 导致代码混乱:
if (条件1) {
// 条件1成立时执行
} else if (条件2) {
// 条件1不成立,但条件2成立时执行
} else if (条件3) {
// 条件1、2不成立,但条件3成立时执行
} else {
// 所有条件都不成立时执行
}
- 注意:条件判断是从上到下依次执行的,一旦某个条件成立,后面的条件将不再判断。因此,条件范围应从大到小(比如先判断成绩≥90,再判断80-89,避免逻辑错误)。
3. 实战案例1:判断奇偶数¶
需求:输入一个整数,判断它是奇数还是偶数。
思路:
任何整数除以2的余数为0则是偶数,否则是奇数。用 % 运算符(取余)判断:num % 2 == 0 时为偶数。
代码示例:
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入一个整数:";
cin >> num; // 读取用户输入的整数
// 判断是否为偶数
if (num % 2 == 0) {
cout << num << " 是偶数" << endl;
} else {
cout << num << " 是奇数" << endl;
}
return 0;
}
运行测试:
输入 7,输出:7 是奇数;输入 10,输出:10 是偶数。
4. 实战案例2:判断成绩等级¶
需求:输入考试分数(0-100),输出对应的等级(A/B/C/D/F)。
规则:90-100分 → A;80-89分 → B;70-79分 → C;60-69分 → D;<60分 → F。
思路:
用 else if 依次判断分数范围,从高分到低分排列条件,避免错误归类。
代码示例:
#include <iostream>
using namespace std;
int main() {
int score;
cout << "请输入考试分数(0-100):";
cin >> score;
// 判断分数是否合法(0-100)
if (score < 0 || score > 100) {
cout << "分数不合法!请输入0-100之间的整数。" << endl;
} else if (score >= 90) { // 先判断最高分数段
cout << "成绩等级:A" << endl;
} else if (score >= 80) { // 次高分段
cout << "成绩等级:B" << endl;
} else if (score >= 70) {
cout << "成绩等级:C" << endl;
} else if (score >= 60) {
cout << "成绩等级:D" << endl;
} else { // 最后处理不及格情况
cout << "成绩等级:F" << endl;
}
return 0;
}
运行测试:
输入 95 → 输出 A;输入 75 → 输出 C;输入 55 → 输出 F;输入 105 → 输出“分数不合法”。
5. 注意事项与常见错误¶
-
条件表达式必须是布尔值
比如if (a = 5)是错误的(赋值运算符返回值为变量本身,不是布尔值),正确应为if (a == 5)(==是比较运算符,返回true/false)。 -
else if的顺序
必须从大到小排列条件,否则会导致逻辑错误。例如,判断分数时,若先写score >=80,则95会被误判为B(而非A)。 -
大括号的使用
即使只有一条语句,建议加上大括号。例如:
if (num % 2 == 0)
cout << "偶数"; // 不加大括号也能执行,但容易混淆
else
cout << "奇数";
但如果后续要扩展多条语句,不加大括号会报错,因此养成写大括号的习惯更安全。
- 条件表达式的范围
避免使用if (num = 0)这种可能被误读的写法,可读性差且易出错。
6. 总结¶
if-else 是C++中最基础的条件控制语句,通过它可以让程序根据不同条件执行不同逻辑。核心要点:
- 单条件用 if,二选一用 if-else,多条件用 else if。
- 注意条件判断的顺序(从大到小)和表达式的正确性。
- 通过实战案例(如奇偶数、成绩等级)熟悉语法,培养“逻辑决策”思维。
掌握 if-else 后,后续可以学习更复杂的嵌套条件(如 if 内再包含 if-else),或结合 switch 语句处理更多分支场景。