老师
同学们大家好,我是北京师范大学附属实验中学的郭培培老师。今天我们来学习多分支结构。上节课我们学习了单分之结构和双分之结构,它们分别通过 if 语句和 if else 语句来实现。在程序的执行上,先判断表达式的值,然后再根据表达式的值选择要执行的语句。
老师
上节课我们布置了一道课后习题,输入考试成绩,输出该成绩对应的等级, 90 分以上输出a, 75- 90 输出b, 60- 75 输出c。这两个都是左避右开的区间, 60 分以下输出d。这道习题大部分同学都用了 4 个 if 语句来实现的,我们一起来看一下。
老师
首先输入考试成绩数据,然后用四个独立的 if 语句分别判断a、b、c、 d 四个等级是否满足条件,如果满足,输出相应的等级。下面我来演示一下这段代码在计算机中的执行过程。首先第一行代码需要输入考试数据,然后我们输入考试成绩98。接下来程序来到第一个 if 语句,判断表达式一, score 大于等于 9 时,是否成立 98 大于等于90,显然成立。指示处执行 print AA 显示在屏幕上。接下来程序来到第二个异步语句,判断表达式2,值为false,什么都不做。程序直接来到第三个 if 语句判断表达式 3 的值只为false,什么都不做判断。第四个表达式false。整段代码结束。
老师
同学们觉得这个执行过程怎么样?对计算机有点儿不太聪明的感觉。其实我们对于任何一个考试成绩只可能输出一个等级, 98 分已经输出 a 了,没有必要再去判断后面的表达式是否成立。但我们目前写出的这段代码, 4 个 if 语句是独立存在的,它们之间没有任何的关联,所以程序会从上到下依次执行。每个 if 语句, 4 个表达式都会判断。那有没有一种语句可以比较高效地解决这种多选一的问题?今天我们就来学习这种语句。多分之if、ill、if、 else 语句,它的一般格式是, if 表达式一,冒号语句块 1 l if 表达式2,冒号语句块二,中间可以有多个 LEF 语句,最后可以是一个 else 语句,它的执行过程是从上到下依次判断表达式。如果某个表达式成立,执行相应的语句块,然后整个多分支语句结束,程序跳转到蓝色箭头所指的位置。但如果所有的表达式都不成立,则执行 else 后对应的语句块。
老师
多分支结构的流程图可以这样来表示,它的各个分支之间是有一定的逻辑关系。执行查看隐藏内容