前面我们使用了if语句的嵌套形式,实现按键S1按下不同次数,点亮不同指示灯,并给出了伪代码。事实上,当有多种判断条件时,我们还可以使用简洁的多分支选择结构switch~case语句。其一般格式如下:
刚接触使用switch语句时,请读者务必非常注意符号的使用,特别是“分号”“冒号”等,以免程序编译时出现意想不到的错误。
switch语句执行的基本过程是:计算“表达式”的值,逐个与其后的“常量表达式”值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,执行完毕后使用“break”退出本次流程(即不再往下判断表达式的值与后续常量表达式的值是否相等)。如表达式的值与所有case后的常量表达式均不相同时,则执行default(默认语句)后的语句。
结合本章任务,我们来举例说明。假设已经定义了一个变量,用来存放按键按下的次数,该变量名字为KeyCnt,则使用switch语句实现控制要求的示意代码如下:
在使用switch语句时读者应特别注意以下几点。
1)在case后的各常量表达式的值不能相同,否则会出现错误。如示意代码中常量表达式分别是0~9。(www.xing528.com)
2)在case后,允许有多个语句,可以不用{}括起来。
3)在一般情况下,每个case后,对应一个break退出操作。
4)各case和default子句的先后顺序可以变动,而不会影响程序执行结果。因此,在可预测的情况下,我们总是把出现频率最高的常量表达式写在前面,以提高判断效率。
5)default子句可以省略不用,但为提高程序健壮性,建议读者合理使用default语句。对本章任务而言,按键按下次数KeyCnt的值被限制在0~8,若不是这些数值,可认为是错误的,因此可在default中添加代码“Key Cnt=0”进行复位操作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。