女孩和机器人一起思考

一起动脑筋 · 先看一个小故事

机器人按分数发贴纸:90 分以上金色,60 分以上蓝色,其余绿色。95 分该停在哪一站?

把过程摊开来看

沿着编号看一遍,再用自己的话讲一遍
  1. 先查 9095 满足
  2. 选中金色执行这一支
  3. 停止后续分支不再查蓝色

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 分分支,得到蓝色。按题意调整条件顺序,或明确写出区间。