C 语言程序设计能力教程(第四版)
上QQ阅读APP看书,第一时间看更新

4.5 switch语句的应用—评定学生成绩

switch语句又称开关语句,在C程序中专门用来处理多分支选择问题。用switch语句编写的多分支选择程序,就像一个多路开关,使程序流程形成多个分支,使用起来比复合if语句及嵌套if语句更加方便灵活。

【例4.8】给定一百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

例4.8程序的N-S图如图4-9所示。

扫一扫 看视频

图4-9 例4.8程序的N-S图

程序代码如下:

程序的运行结果为(比如输入成绩为85分,输出等级为B级):

85<回车>

Score:85,grade:B

相关知识6

1.switch语句

switch语句的语法格式如下:

其含义为:先计算表达式的值,判断此值是否与某个常量表达式的值匹配,如果匹配,控制流程转向其后相应的语句,否则,检查default是否存在,如存在则执行其后相应的语句,否则结束switch语句。

使用switch结构设计多分支选择结构程序,不仅使用更加方便,而且程序可读性也更高。其流程图如图4-10所示。

图4-10 switch结构的流程图

有关switch语句使用的几点说明:

①括号内的表达式可以是整型或字符型。

②case后的每个常量表达式必须各不相同。

③case子句和default子句的位置是任意的。

④每个case之后的执行语句可多于一个,但不必加{}。

⑤允许几种case情况下执行相同的语句,不必每个都写。

⑥switch,break,default,case均为C语言的关键字。

2.break语句

break语句在C语言中称为中断语句,只有关键字break,没有参数。break语句不仅可以用来结束switch的分支语句,而且可以在循环结构中实现中途退出,即在循环条件没有终止前也可以使用break语句来跳出循环结构。详见第5章相关知识。

注意:switch语句中本来不包含break语句,但switch语句不像if语句一样只要满足某一条件则可在执行相应的分支后自动结束选择。在switch语句中,当表达式的值与某个常量表达式的值相等时,即执行常量表达式后对应的语句,然后不再进行判断,继续执行后面所有case分支的语句,因此需要在每个case分支的最后加上一条break语句,以帮助结束选择。

课后讨论

同样是C程序设计中的多分支选择语句,试举例说明switch语句与if…else if…形式的复合if语句有何异同。