🔷 第四章 条件判断语句
📄 一句话概括

第二种形式 if-else:条件为真走 if 块,为假走 else 块——两路必走其一、只走其一。单分支只管"做不做",双分支把"不做时干什么"也安排上了。

一、语法与执行流程

if (score >= 90) {
    cout << "优秀" << endl;     // 真路
} else {
    cout << "继续加油" << endl; // 假路
}

执行顺序:算条件 → 真:走 if 块,走完跳过 else;假:直接跳到 else 块。无论真假,都只有一块会执行,之后从两块后面汇合继续。

要点:

二、实例 02:根据分数判断是否优秀

#include <iostream>
using namespace std;

int main() {
    int score;
    cout << "请输入分数:";
    cin >> score;

    if (score >= 90) {
        cout << "优秀" << endl;
    } else {
        cout << "继续加油" << endl;
    }
    return 0;
}

看到什么算成功:输入 95 输出"优秀";输入 88、59 输出"继续加油"。

测试心法(重要):分支程序每组条件至少喂两个输入——一个踩真路、一个踩假路。只测真路,假路的 bug 永远藏不住。

三、30 秒实验:else 找不到主

把 else 和 if 块中间插一句普通语句试试:

if (score >= 90) {
    cout << "优秀" << endl;
}
cout << "查询完毕" << endl;   // 插在中间
else { ... }                  // 报错!

看到什么算成功:编译报 error: 'else' without a previous 'if'——else 是"跟着 if 走的尾巴",中间插了别人它就认不到主了。把插入句挪到 if-else 整体之后即可。

四、常见误区

  1. "else 也要写条件"——不用也不能。写 else (score < 90) 直接报错;条件已经隐含在"if 没接住"里。
  2. "两块都执行"——不可能。真走 if 假走 else,结构上保证了互斥;想都执行就别用 if-else,写成两句顺序代码。
  3. "if (score >= 90) 边界 90 分算不算优秀"——>= 算。边界值是条件 bug 高发区,测试时专门喂 90、89 这两个数。
自测三问(点开对答案) 1. `else` 块什么时候执行?——`if` 条件为假时;且两块必走其一、只走其一。 2. `else` 后面能写条件吗?——不能,报编译错误;else 就是"剩余全部"。 3. 测试 if-else 至少要喂几组输入?——两组:真路一组、假路一组;边界值(如 90/89)也要专门测。

相关笔记