一、基础知识
多分支判断的基本语法可以表示为:
if (判断条件1) {// 如果判断条件1为真,执行这里的代码
} else if (判断条件2) {// 如果判断条件1为假且判断条件2为真,执行这里的代码
} else if (判断条件3) {// 如果判断条件1和判断条件2都为假且判断条件3为真,执行这里的代码
} else {// 如果以上所有判断条件都为假,执行这里的代码
}
这里的判断条件1, 判断条件2, 判断条件3等都是布尔表达式,它们的值只能是true或false。这些判断条件可以是各种各样的,例如:
-
比较运算符:
a > b
: a是否大于ba < b
: a是否小于ba >= b
: a是否大于等于ba <= b
: a是否小于等于ba == b
: a是否等于ba != b
: a是否不等于b
-
逻辑运算符:
判断条件1 && 判断条件2
: 判断条件1 和 判断条件2 是否都为真判断条件1 || 判断条件2
: 判断条件1 和 判断条件2 是否至少有一个为真!判断条件
: 判断条件是否为假
下面是一个使用具体判断条件的例子,用来判断一个数是正数、负数还是零:
int number = -5;if (number > 0) {cout << "正数" << endl;
} else if (number < 0) {cout << "负数" << endl;
} else {cout << "零" << endl;
}
在这个例子中,我们使用了比较运算符>
和<
来判断number的值:
- 如果
number > 0
为真,就输出"正数"。 - 如果
number > 0
为假且number < 0
为真,就输出"负数"。 - 如果
number > 0
和number < 0
都为假(即number等于0),就会执行else分支,输出"零"。
通过使用具体的判断条件,我们可以让多分支判断的逻辑更加清晰和易于理解。在实际编程中,你可以根据具体问题的需要,使用各种不同的判断条件。
二、课堂练习
课堂练习1:判断成绩等级
题目:请编写一个程序,从控制台读取一个学生的成绩(0到100之间的整数),然后根据下面的标准输出他的等级:
- 90-100分:优秀
- 80-89分:良好
- 70-79分:中等
- 60-69分:及格
- 0-59分:不及格
输入格式:一个0到100之间的整数
输出格式:学生的等级(优秀, 良好, 中等, 及格, 不及格)
示例输入:
85
示例输出:
良好
学生需要完成的任务:
- 使用cin读取一个0到100之间的整数
- 使用if-else if-else语句判断成绩属于哪个等级
- 使用cout输出结果
习题解析
#include <iostream>
using namespace std;int main() {int score;cout << "请输入学生的成绩(0-100): ";cin >> score;if (score >= 90 && score <= 100) {cout << "优秀" << endl;} else if (score >= 80 && score < 90) {cout << "良好" << endl;} else if (score >= 70 && score < 80) {cout << "中等" << endl;} else if (score >= 60 && score < 70) {cout << "及格" << endl;} else if (score >= 0 && score < 60) {cout << "不及格" << endl;} else {cout << "输入的成绩无效" << endl;}return 0;
}
代码解析:
-
首先,我们使用
cin
从控制台读取学生的成绩,并存储在变量score
中。 -
然后,我们使用一系列的
if-else if
语句来判断成绩属于哪个等级:- 第一个
if
语句判断成绩是否在90到100之间(包括90和100)。如果是,就输出"优秀"。 - 第一个
else if
语句判断成绩是否在80到89之间。如果是,就输出"良好"。 - 第二个
else if
语句判断成绩是否在70到79之间。如果是,就输出"中等"。 - 第三个
else if
语句判断成绩是否在60到69之间。如果是,就输出"及格"。 - 第四个
else if
语句判断成绩是否在0到59之间。如果是,就输出"不及格"。
- 第一个
-
最后的
else
语句处理输入的成绩无效的情况(即不在0到100之间)。这可以防止用户输入无效的成绩。 -
在每个
if
和else if
语句中,我们使用了逻辑运算符&&
来组合两个条件。例如,score >= 90 && score <= 100
表示成绩大于等于90且小于等于100。 -
注意,这里的
if-else if
语句是互斥的,只会执行其中一个分支。一旦某个条件满足,就会执行对应的代码块,然后跳出整个if-else if-else
语句。