c语言case2什么意思,switchCase2

## **Switch和Case条件语句2**

If语句允许你根据条件的真假(真(TRUE)或假(FALSE))进行两个分支操作。当需要进行多个判断时,你就必须使用If嵌套。不过其实还有一种更为简洁的处理多条件判断的方法,那就是使用switch语句,switch语句允许你一次对多种情况进行区分。本例向你展示如何使用switch语句来根据串口收到的命令打开、关闭指定的LED。命令是一系列字符:a、b、c、d、e,分别对应5个LED。

### **所需硬件**

* Arduino或Genuino板

* 5个LED

* 5个220Ω电阻

* 跳线

* 面包板

* 连接线

### **电路**

![图片来自官网](https://img-blog.csdn.net/20160531125408452)

5个LED分别串接一个220Ω电阻并且分别连接到**2**、**3**、**4**、**5**、**6**引脚。板子应该与电脑,并且确保Arduino 串口监视器已经打开。你可以发送**a**、**b**、**c**、**d**、**e**来点亮指定LED,发送其他任意字符关闭所有LED。

### **原理图**

![图片来自官网](https://img-blog.csdn.net/20160531125353280)

### **代码**

~~~

/*

Switch和Case条件语句2

展示switch语句的使用,switch语句让你能够一次对变量的多个可能值进行分支处理,这和使用一系列if语句嵌套的功效相同。但使用switch将使代码更加简洁。

为了看到效果,请打开串口监视器。发送a b c d e中的任意一个字符可以打开指定LED。发送其他字符关闭所有LED。

电路搭建:

* 5个LED串接220Ω电阻连接到2-6引脚

代码公开

*/

void setup() {

// 初始化串口通信:

Serial.begin(9600);

// 初始化LED引脚:

for (int thisPin = 2; thisPin < 7; thisPin++) {

pinMode(thisPin, OUTPUT);

}

}

void loop() {

// 读取传感器:

if (Serial.available() > 0) {

int inByte = Serial.read();

// 根据收到的字符进行不同处理:

// case后应紧跟符合的条件(某个字符)

// 下面代码使用了单引号来告诉单片机:给我ASCII值,比如

// 'a' = 97, 'b' = 98 以此类推

switch (inByte) {

case 'a':

digitalWrite(2, HIGH);

//译者注:这个break很重要。如果不加,那么程序就会在执行这个case之后一路执行下去。例如:如果这里不加break而inByte又是‘a’,则b也会被执行。由于b后面有break,所以switch case就结束了。如果b也没有。那么程序就会 a->b->c 以此类推。所以一般case最后都要有break。读者可以全部不加break,然后在每一个case中输出调试信息来亲身体会。

break;

case 'b':

digitalWrite(3, HIGH);

break;

case 'c':

digitalWrite(4, HIGH);

break;

case 'd':

digitalWrite(5, HIGH);

break;

case 'e':

digitalWrite(6, HIGH);

break;

default:

// 将所有LED关闭:

//如果所有的case都没有匹配上,default后面就会被执行

for (int thisPin = 2; thisPin < 7; thisPin++) {

digitalWrite(thisPin, LOW);

}

}

}

}

~~~

### **相关资料**

[serial.begin()](https://www.arduino.cc/en/Serial/Begin)

[serial.read()](https://www.arduino.cc/en/Serial/Read)

[serial.available()](https://www.arduino.cc/en/Serial/Available)

[switch() case](https://www.arduino.cc/en/Reference/SwitchCase)

[digitalWrite()](https://www.arduino.cc/en/Reference/DigitalWrite)

[原文连接](http://www.arduino.cc/en/Tutorial/SwitchCase2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值