2.8 使用swtich语句控制流水灯

2.8.1 switch语句介绍

If语句一般用来处理两个分支。当处理多个分支情况时需使用if-else-if结构,但如果分支较多,则嵌套的if语句层就越多,程序不但庞大而且不易理解。因此C语言提供了一个专门处理多分支结构的条件选择语句,即swtich语句(又称为开关语句)。其基本形式为如下:

978-7-111-46996-4-Part01-86.jpg

978-7-111-46996-4-Part01-87.jpg

该语句的执行过程是:首先计算switch后面()内表达式的值,然后用该值依次与各个case语句后面的常量表达式比较,若switch后面()内表达式的值与某个case后面的常量表达式的值相等,则就执行此case后面的语句,当遇到break语句就退出switch语句,执行后面的语句;若()内表达式的值与所有case后面的常量表达式的值都不相等,则执行default后面的语句n+1,然后退出switch语句,执行switch语句后面的语句。

2.8.2 使用swtich语句控制流水灯

1.任务书

与2.7相同

2.参考程序

在2.7.2的程序代码中,把控制流水灯显示的display()函数修改为下面的函数,其余的不变,可实现同样的效果。

978-7-111-46996-4-Part01-88.jpg

注意:(1)break还可以用在for循环或while循环内,用于强制跳出循环。

(2)switch语句与if语句有以下不同:

1)ifelseif要依次判断()内条件表达式的值,当条件表达式为真时,就选择属于它的语句执行。switch只在开始判断一次()内的变量或表达式的值,就直接跳到相应的位置,效率更高。

2)ifelseif执行完属于它的语句后跳出。switch是跳到相应的case项目执行完后,不会自动跳出,而是接着往下执行case程序。只有遇到break后才会跳出。