第 04 课:分支结构——单分支与双分支

本课定位:前三课的程序都是“一条道走到黑”——从头到尾每条语句都执行一遍,这叫顺序结构。本课让程序第一次会做选择:条件成立就做某件事,不成立就跳过;或者两条路里走一条。这是分支结构的入门,也是后面所有“会思考”的程序的基础。

0. 本节知识地图

顺序结构:从上到下,每条语句都执行一遍

分支结构:遇事不决,先问一句“条件成立吗?”

        条件成立吗?
          │
     ┌────┴────┐
     成立       不成立
     │            │
  做这件事      单分支:什么都不做
              双分支:去做另一件事

学完本课,学员要能用自己的话说清楚这张图:程序先判断一个条件,成立就执行 if 里的语句;不成立时,单分支直接跳过,双分支则改去执行 else 里的语句。

1:程序为什么需要选择

前面写过的程序,都是从第一行执行到最后一行,一条不落:

#include<iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    cout << n * 2 << endl;   // 不管 n 是几,这一句都会执行
    return 0;
}

可是现实里的问题常常带着“如果”:

这些题用顺序结构写不出来——因为有的语句在该情况下要执行,在另一种情况下要跳过。要做到这件事,就得先学会“判断一个条件”。

2 条件:用关系运算符比大小

两个数比大小,用下面这些符号,它们叫关系运算符:

运算符 含义 例子 成立吗
> 大于 7 > 5 成立
< 小于 7 < 5 不成立
>= 大于或等于 5 >= 5 成立
<= 小于或等于 4 <= 5 成立
== 等于(两个等号!) 7 == 5 不成立
!= 不等于 7 != 5 成立

注意两个地方:

  1. >= 和 <= 的写法是“先大后等”,写成 =>、=< 是错的;
  2. 判断相等要用两个等号 ==,一个等号 = 是赋值,这两个是完全不同的东西。

条件成立还是不成立,可以直接输出出来看: