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

前三章的程序都是顺序结构——从上到下一句句执行,路只有一条。现实里做事经常要"看情况":下雨带伞、满 18 才能办卡。分支结构就是让程序学会"看情况办事"的工具,本章学的 if 一家和 switch 全是它的具体写法。

一、程序只有三种走法

再复杂的程序,拆到最底层只有三种基本结构:

结构 生活比喻 谁在讲
顺序结构 一条道走到黑:做完 step1 做 step2 第 1~3 章你写的全部代码
分支结构 岔路口:看条件挑一条路走 本章
循环结构 转圈圈:条件满足就反复做 第五章

关键认知:分支不是"程序变聪明了",而是程序第一次"看数据下菜碟"。 同一份代码,喂不同的输入,走不同的路、出不同的结果——这就是"决策"。

二、决策 = 条件 + 两份预案

一个分支判断,拆开就两样东西:

  1. 条件——一个能算出"真 / 假"的表达式。前三章备的料全用上了:
  2. 关系运算符出真假:score >= 90(3.1.2)
  3. 逻辑运算符拼复杂条件:age >= 18 && hasID(3.1.3)
  4. 预案——条件为真干什么、(可选)为假干什么。

也就是说:第三章的"比出真假",正是第四章"按真假办事"的地基。 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 输出"未成年"。同一份代码两种结果——分支生效了。

五、常见误区

  1. "分支会让程序跑得更慢,能不用就不用"——分支的代价几乎为零,现代 CPU 对分支有专门优化。该判断就判断,别为不存在的问题省代码。
  2. "条件只能是 a > b 这种简单式子"——条件是任意 bool 表达式,n % 4 == 0 && n % 100 != 0 这样拼出来的照样能放(4.5 的闰年实例就这么干)。
  3. "没有 else 就不完整"——if 可以单干(4.2.1);else 是可选项,不是必需品。
自测三问(点开对答案) 1. 程序的三种基本结构是什么?——顺序、分支、循环(本章讲分支,第五章讲循环)。 2. `if` 的小括号里站的是什么?——一个能算出 `bool`(真/假)值的表达式。 3. "决策"的两样东西是?——条件 + 预案(为真干什么,可选的为假干什么)。

相关笔记