分支结构
分支结构简介
在编程里,我们常常要依据不同的情形来做出不同的选择。比如我们判断数的奇偶性,如果一个数字能整除,那么就是偶数,否则为奇数。
分支结构就是用来处理这类"如果,那么"的问题的,在C++中,主要有if-else
语句和switch
语句这两种分支结构。
条件表达式与比较运算符
引入
我们日常使用如果的时候,一般都会说“如果怎么怎么样,那么如何如何”。
这个“怎么怎么样”,一般来说要么为真要么为假。比如“如果今天下雨,那么带伞”,“今天下雨”就是要么为真要么为假的。
更加严格的来说,我们称这个“怎么怎么样”为一个命题,一个命题描述了一个要么是真的要么是假的的事情,比如“今天下雨”可以是一个命题,因为今天要么下雨要么不下雨。
那在学习分支结构之前,我们需要先了解电脑是如何来表示命题的。
我们在C++编程中,使用条件表达式来描述一个命题。
在 C++ 里,条件表达式属于用于判定真假的表达式,其结果为布尔类型(true
或者 false
)。
布尔类型是一种变量类型,在C++里用它来描述真和假,可以当作是数值只能为0或者1的int类型,0表示假,1表示真。
条件表达式常被用于控制程序的流程,像 if
语句、while
语句、for
语句等都会用到它。借助不同的运算符,条件表达式能够对变量、常量进行比较和逻辑运算。
比较运算符
比较运算符用于比较两个值的大小关系,结果为布尔值。
条件表达式主要依靠各类运算符来构建,以下是常见的比较运算符。
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
== | 等于 | 5 == 5 | true |
!= | 不等于 | 5 != 3 | true |
< | 小于 | 5 < 10 | true |
> | 大于 | 5 > 3 | true |
<= | 小于等于 | 5 <= 5 | true |
>= | 大于等于 | 5 >= 3 | true |
示例代码:
示例代码
逻辑运算符
逻辑运算符用于连接多个条件表达式,帮助我们处理更复杂的判断情况。常见的逻辑运算符有三个:逻辑与(&&
)、逻辑或(||
)和逻辑非(!
)。
逻辑与(&&
)
逻辑与运算符就像两个小伙伴一起完成任务,只有当两个小伙伴都完成了自己的任务,整个任务才算完成。在编程里,只有当 &&
两边的条件都为真时,整个表达式才为真,只要有一个条件为假,整个表达式就为假。
在这个例子中,age > 12
为真,score > 80
也为真,所以 (age > 12) && (score > 80)
整个表达式为真,程序会输出“满足年龄和分数要求。”
逻辑或(||
)
逻辑或运算符就像两个小伙伴完成任务,只要有一个小伙伴完成了任务,整个任务就算完成。在编程里,只要 ||
两边的条件有一个为真,整个表达式就为真,只有当两个条件都为假时,整个表达式才为假。
在这个例子中,height > 170
为假,weight > 50
也为假,所以 (height > 170) || (weight > 50)
整个表达式为假,程序会输出“不满足身高和体重要求。”
逻辑非(!
)
逻辑非运算符就像给条件“唱反调”,如果原来的条件为真,加上逻辑非运算符后就变成假;如果原来的条件为假,加上逻辑非运算符后就变成真。
在这个例子中,isRainy
为假,使用逻辑非运算符后,isSunny
为真,程序会输出“天气晴朗。”
常用分支语句
上面我们介绍了C++是如何表示“如果怎样怎样,那么如何如何,否则如何如何”中的“怎样怎样”的,现在我们要介绍如何表示剩下来的“如果,那么,否则”的内容。
if-else
语句
if-else
语句的作用是当某个条件成立时,执行一段代码;要是条件不成立,就执行另一段代码。

基本语法
例题1:判断一个数是奇数还是偶数
在这个程序里,num % 2 == 0
就是判断条件。如果num
除以2的余数是0,就输出num
是偶数;反之,就输出num
是奇数。
例题2:比较两个数的大小
在这个程序中,a > b
是判断条件。若a
大于b
,就输出a
大于b
;否则,输出a
小于等于b
。
switch
语句
switch
语句适用于根据一个变量的不同取值来执行不同的代码块。

基本语法
例题3:根据输入的数字输出对应的星期几
在这个程序里,switch
语句会依据day
的值来执行不同的case
分支。要是day
的值不在1到7之间,就会执行default
分支。
例题4:根据输入的字符输出对应的季节
在这个程序中,switch
语句会根据season
的值来执行不同的case
分支。要是season
不是s
、x
、q
、d
中的任何一个,就会执行default
分支。
通过这些例题,你应该对if-else
语句和switch
语句有了基本的了解。在实际编程时,要依据具体情况选择合适的分支结构。