单片机从入门到实战(视频自学版)
上QQ阅读APP看书,第一时间看更新

2.8 使用switch语句控制流水灯

2.8.1 switch语句介绍

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

978-7-111-66891-6-Part01-66.jpg

978-7-111-66891-6-Part01-67.jpg

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

2.8.2 使用switch语句控制流水灯的参考程序及解释

1.任务书

与2.6.2节相同。

2.参考程序

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

978-7-111-66891-6-Part01-68.jpg

注意:

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

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

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

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