switch…case

说明

就像if语句,switch…case允许Arduino根据不同的条件运行不同的的程序代码。switch语句通过对一个变量的值与case语句中指定的值进行比较。当一个case语句中的指定值与switch语句中的变量相匹配。就会运行这个case语句下的代码。

通过break关键字,Arduino可以中止并跳出switch语句段,break关键字常常用于每个case语句的最后面。如果没有break语句,switch语句将继续执行下面的表达式(“持续下降”)直到遇到break,或者是到达switch语句的末尾。

Arduino编程语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况。

结构

需要注意的几点内容:
1) 在以上结构示例代码中,当变量var和某个case后面的数值匹配成功后,如果没有break, Arduino会执行该分支以及后面所有分支的语句。
2) case 后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量。
3) case 后面不能使用字符串,但可以使用字符,使用字符时需要用单引号把字符括起来,如: case: 'b'
4) default 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么就什么都不执行。

switch…case语句示例

通过本示例程序,用户可使用Arduino IDE的串口监视器向Arduino 发送字符(a, b, c, d, e点亮相应的LED,其他字符熄灭所有LED),此程序旨在演示如何使用switch…case语句对Arduino控制器进行编程。

所需硬件

– Arduino Uno控制器
– 5个LED
– 5个220 欧姆电阻
– 连接线
– 面包版

连接说明(如下图)

Arduino Switch Case 电路连接说明
Arduino Switch Case 电路连接说明

程序代码 (可双击程序内容全选代码)

注:本示例程序涉及串行通讯的相关知识,如有需要请点击这里进入我站串行通讯页面

程序说明

Arduino运行以上程序后,用户可以通过串口监视器向Arduino输入字符。该输入信息将赋值给变量inByte。

例如,用户输入字符a,Arduino将执行case ‘a’后面的语句,点亮连接在引脚2上面的LED。再比如,用户输入字符b,Arduino将执行case ‘b’后面的语句,点亮连接在引脚3上面的LED。以此类推…

如果用户的输入字符是a,b,c,d e以外的字符,Arduino将执行default:后面的语句,将所有LED熄灭。

相关阅读: if…elseSerial/串行通讯