一,多分支结构
某些场景下,判断条件不止一个,可能有多个。
语法格式(下图左):
*需要注意:这里仅是以5种选择作为例子,
可以根据自己的需要,在if...else的中间插入任意个else if来增加选择
C++将从第一个选择开始往下进行判断,当遇到首个条件成立的判断时,会执行里面的代码,并跳过剩下的所有判断。
//思考:请问上图右边这种多分支选择,与左边的例子有何区别?它们能实现的功能是完全一样的吗?
答:要搞清楚这个问题,需要理清楚多个if和if...else if...else之间的区别——
两种情况C++都是从头往下依次进行判断,只要条件成立,就会执行对应的代码
唯一的区别在于,当遇到首个条件成立的判断时,左图情况会执行里面的代码,并跳过剩下的所有判断,而右图情况仍会继续往下判断。
if...else if...else多分支是一个整体,整体只做一件事。
多个if各自都是单体,只要满足条件就做事。
二,分支嵌套
有很多场景,不仅仅是多个并列条件,还会有满足前提条件才会二次判断的多层判断需求。
比如老师说:“下课后,男生里力气大的同学,留下来帮老师搬东西。”
在这个场景中,“男生”是一个前提条件,满足这个前提条件之后、再进行二次判断“力气大”的同学。
我们以实际程序来举一个例子你就更加明白了:
编写一个简易计算器,实现以下功能——
用户能够输入两个整数x,y和一个字符c(输入的c只可能是’+’、’-’、’*’、’/’这四种运算符)
请根据输入的字符c计算对应的x和y的运算(例如输入的x,y,c分别为10,20,+,那么你就应该计算10+20的结果,以此类推)
但学过除法的小朋友都知道,0是不能作为除数的,因此如果y是0并且c是’/’,你的程序不应该帮用户计算x/y而是输出“学过除法吗?除数不能为零!”狠狠地嘲讽用户(玩笑罢了~),如果还没理解题目,请看下图的样例。