
一起动脑筋 · 先看一个小故事
机器人按分数发贴纸:90 分以上金色,60 分以上蓝色,其余绿色。95 分该停在哪一站?
把过程摊开来看
- 先查 9095 满足
- 选中金色执行这一支
- 停止后续分支不再查蓝色
if / else if / else 按顺序检查,找到第一个成立的分支就执行。
条件可能重叠,因此顺序重要。95 同时不少于 60 和 90,但金色规则应优先。
01如果有三种、四种情况怎么办?
例如按分数划分等级:
if (score >= 90) {
std::cout << "A";
} else if (score >= 80) {
std::cout << "B";
} else if (score >= 60) {
std::cout << "C";
} else {
std::cout << "D";
}
02else if 是怎样选择的?
程序会从上到下检查。遇到第一个为 true 的条件后,执行对应分支,然后跳过后面的同一条条件链。
先检查 ≥ 90↓再检查 ≥ 80↓第一个 true 就选中
03为什么顺序很重要?
// 错误的顺序
if (score >= 60) {
std::cout << "C";
} else if (score >= 90) {
std::cout << "A";
}
如果 score = 95,第一条 score >= 60 已经为 true,后面的 >= 90 根本不会再判断。
04什么时候用 &&?
如果一个分支需要同时满足多个条件:
if (age >= 10 && registered) {
std::cout << "可以参加";
}
这里两个条件都必须为 true。
05什么时候用 ||?
如果满足任意一个条件即可:
if (isWeekend || isHoliday) {
std::cout << "可以休息";
}
06独立 if 和 else if 怎样选择?
多个独立 if
多个条件可能同时成立,需要分别执行时使用。
if / else if 链
多个情况互斥,只希望选择一个分支时常用。
你已经知道了什么
else if可以形成多分支条件链。- 程序从上到下寻找第一个 true 的分支。
- 条件顺序会直接影响结果。
&&、||、!可以组合条件。- 独立 if 与 else-if 链的含义不同。
下一篇:for:让电脑重复做一件事
轮到你来试一试
把 60 分条件放在 90 分前面,95 会得到什么?
想好了吗?点开看解释
会进入先满足的 60 分分支,得到蓝色。按题意调整条件顺序,或明确写出区间。