c语言case套case,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 配对出错的情况。

结构

Arduino

switch (var) {

case 1:

//当var等于1时执行这里的程序

break;

case 2:

//当var等于2时执行这里的程序

break;

default:

// 如果var的值与以上case中的值都不匹配

// 则执行这里的程序

break;

}

1

2

3

4

5

6

7

8

9

10

11

12

switch(var){

case1:

//当var等于1时执行这里的程序

break;

case2:

//当var等于2时执行这里的程序

break;

default:

// 如果var的值与以上case中的值都不匹配

// 则执行这里的程序

break;

}

需要注意的几点内容:

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 欧姆电阻

– 连接线

– 面包版

连接说明(如下图)

43cc553a663ee316169f5c57bf64b473.pngArduino Switch Case 电路连接说明

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

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

Arduino

/*

switch...case语句示例程序

v1.0

Created 2016

by 太极创客

www.taichi-maker.com

说明:

本示例程序后,用户可使用Arduino IDE的串口监视器

向Arduino 发送字符(a, b, c, d,或者e)Arduino

根据用户输入的字符,点亮相应的LED。此程序旨在演示

如何使用switch...case语句对Arduino控制器进行编程。

This example code is in the public domain.

*/

void setup() {

Serial.begin(9600); // 初始化串口通讯

for (int thisPin = 2; thisPin < 7; thisPin++) {// 初始化Arduino连接LED的引脚

pinMode(thisPin, OUTPUT);

}

}

void loop() {

if (Serial.available() > 0) {

int inByte = Serial.read();

// Arduino用switch语句,根据接收到的不同信息进行相应的反应。

switch (inByte) {

case 'a':

digitalWrite(2, HIGH);

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:

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

digitalWrite(thisPin, LOW);

}

break;

}

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

/*

switch...case语句示例程序

v1.0

Created 2016

by 太极创客

www.taichi-maker.com

说明:

本示例程序后,用户可使用Arduino IDE的串口监视器

向Arduino 发送字符(a, b, c, d,或者e)Arduino

根据用户输入的字符,点亮相应的LED。此程序旨在演示

如何使用switch...case语句对Arduino控制器进行编程。

This example code is in the public domain.

*/

voidsetup(){

Serial.begin(9600);// 初始化串口通讯

for(intthisPin=2;thisPin<7;thisPin++){// 初始化Arduino连接LED的引脚

pinMode(thisPin,OUTPUT);

}

}

voidloop(){

if(Serial.available()>0){

intinByte=Serial.read();

// Arduino用switch语句,根据接收到的不同信息进行相应的反应。

switch(inByte){

case'a':

digitalWrite(2,HIGH);

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:

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

digitalWrite(thisPin,LOW);

}

break;

}

}

}

程序说明

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

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值