📄 一句话概括
第二种形式 if-else:条件为真走 if 块,为假走 else 块——两路必走其一、只走其一。单分支只管"做不做",双分支把"不做时干什么"也安排上了。
一、语法与执行流程
if (score >= 90) {
cout << "优秀" << endl; // 真路
} else {
cout << "继续加油" << endl; // 假路
}
执行顺序:算条件 → 真:走 if 块,走完跳过 else;假:直接跳到 else 块。无论真假,都只有一块会执行,之后从两块后面汇合继续。
要点:
else后面没有小括号、没有条件——它就是"if 没接住的全部剩下情况"else必须紧挨着if块,中间不能插独立语句- 想给"假"再加条件分级?那是
else if(4.2.3)的活
二、实例 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 整体之后即可。
四、常见误区
- "else 也要写条件"——不用也不能。写
else (score < 90)直接报错;条件已经隐含在"if 没接住"里。 - "两块都执行"——不可能。真走 if 假走 else,结构上保证了互斥;想都执行就别用 if-else,写成两句顺序代码。
- "
if (score >= 90)边界 90 分算不算优秀"——>=算。边界值是条件 bug 高发区,测试时专门喂 90、89 这两个数。
自测三问(点开对答案)
1. `else` 块什么时候执行?——`if` 条件为假时;且两块必走其一、只走其一。 2. `else` 后面能写条件吗?——不能,报编译错误;else 就是"剩余全部"。 3. 测试 if-else 至少要喂几组输入?——两组:真路一组、假路一组;边界值(如 90/89)也要专门测。- ☐ 4.2.3 第三种形式的判断语句(下一节)
相关笔记
- 第一种形式的判断语句 —— 单分支是双分支砍掉 else
- 第三种形式的判断语句 —— else 装不下时升级
- 🔷 C++基础 · 索引 —— 全课路线图