
4.1 选择结构程序设计简介
通过前面章节的学习,我们已经掌握了顺序结构程序的执行方法:按照先后次序依次顺序执行。而现实中的很多编程问题往往需要根据不同的条件采用不同的操作,例如:
①将一批数中的正整数输出来(判断是否大于0)。
②把学生考试成绩不及格的学生名单打印出来(判断成绩是否超过60分)。
类似的问题如果采用顺序结构来进行程序设计显然是不合适的。因此,需要掌握另外一种程序设计方法—选择结构程序设计方法。
选择结构又称分支结构,是依据条件成立与否来选择执行不同操作的一种程序设计方法。标准选择结构的流程图如图4-1所示。下面来看一个例子。

图4-1 标准选择结构流程图
【例4.1】判断学生成绩是否合格。
任意输入一名学生成绩,自动判断成绩是否合格。如果成绩达到60分及以上,就认为是合格,给出判断结果;否则,认为不合格,也给出判断结果。
算法分析与设计:
在本例中学生成绩是从键盘读入的数据,定义变量score表示,因此判断学生成绩是否合格,实际上就是判断学生成绩是否大于或等于整数60。如果学生成绩(score)大于或等于整数60,则该学生成绩为“合格”,否则为“不合格”。此题目完成需要三步:
①任意输入一名学生的成绩。
②判断是否大于等于60。
③输出结果。
解题的流程图如图4-2所示。

图4-2 判断学生成绩是否合格流程图
程序代码如下:

当用户在运行程序并根据程序提示从键盘输入不同数据时,程序将得到如下两种不同的运行结果:
①当输入的分数高于或等于60分时,如输入数据为79:
Please input a student's score:79<回车>
则输出:
The student's score has passed.
②当输入的分数低于60分时,如输入45:
Please input a student's score:45<回车>
则输出:
The student's score hasn't passed.
在上面的例子中,if…else…是典型的选择结构程序语句,表示“如果……否则……”。程序执行时需要进行判断,这种程序设计结构也叫分支结构。
通过上面的例题可以看出,选择结构程序设计就是根据给定的条件执行相应的操作语句的程序设计。具体使用规则参见4.2节。
课后讨论
选择结构程序与顺序结构程序执行流程有什么区别?