📄 一句话概括
前三章的程序都是顺序结构——从上到下一句句执行,路只有一条。现实里做事经常要"看情况":下雨带伞、满 18 才能办卡。分支结构就是让程序学会"看情况办事"的工具,本章学的 if 一家和 switch 全是它的具体写法。
一、程序只有三种走法
再复杂的程序,拆到最底层只有三种基本结构:
| 结构 | 生活比喻 | 谁在讲 |
|---|---|---|
| 顺序结构 | 一条道走到黑:做完 step1 做 step2 | 第 1~3 章你写的全部代码 |
| 分支结构 | 岔路口:看条件挑一条路走 | 本章 |
| 循环结构 | 转圈圈:条件满足就反复做 | 第五章 |
关键认知:分支不是"程序变聪明了",而是程序第一次"看数据下菜碟"。 同一份代码,喂不同的输入,走不同的路、出不同的结果——这就是"决策"。
二、决策 = 条件 + 两份预案
一个分支判断,拆开就两样东西:
- 条件——一个能算出"真 / 假"的表达式。前三章备的料全用上了:
- 关系运算符出真假:
score >= 90(3.1.2) - 逻辑运算符拼复杂条件:
age >= 18 && hasID(3.1.3) - 预案——条件为真干什么、(可选)为假干什么。
也就是说:第三章的"比出真假",正是第四章"按真假办事"的地基。 if (条件) 的小括号里,站的就是一个 bool 表达式。
三、本章地图
| 小节 | 内容 | 一句话 |
|---|---|---|
| 4.2 | 判断语句三种形式 | if / if-else / if-else if-else |
| 4.3 | 条件运算符判断 | 三目 ? : 挑值版分支 |
| 4.4 | switch 语句 | 按离散值"对号入座" |
| 4.5 | 判断语句的嵌套 | if 里套 if,以及用逻辑运算符拉平 |
四、30 秒实验:先看程序"变脸"
同一份代码,喂不同输入,走不同的路:
#include <iostream>
using namespace std;
int main() {
int age;
cout << "请输入年龄:";
cin >> age;
if (age >= 18)
cout << "已成年,可以办理" << endl;
else
cout << "未成年,需监护人陪同" << endl;
return 0;
}
看到什么算成功:输入 20 输出"已成年";输入 12 输出"未成年"。同一份代码两种结果——分支生效了。
五、常见误区
- "分支会让程序跑得更慢,能不用就不用"——分支的代价几乎为零,现代 CPU 对分支有专门优化。该判断就判断,别为不存在的问题省代码。
- "条件只能是
a > b这种简单式子"——条件是任意bool表达式,n % 4 == 0 && n % 100 != 0这样拼出来的照样能放(4.5 的闰年实例就这么干)。 - "没有 else 就不完整"——
if可以单干(4.2.1);else是可选项,不是必需品。
自测三问(点开对答案)
1. 程序的三种基本结构是什么?——顺序、分支、循环(本章讲分支,第五章讲循环)。 2. `if` 的小括号里站的是什么?——一个能算出 `bool`(真/假)值的表达式。 3. "决策"的两样东西是?——条件 + 预案(为真干什么,可选的为假干什么)。- ☐ 4.2 判断语句(下一节)
相关笔记
- 关系运算符 —— 条件的"出厂车间"
- 逻辑运算符 —— 复杂条件与短路求值
- 🔷 C++基础 · 索引 —— 全课路线图