## **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)

c语言case2什么意思,switchCase2相关推荐

  1. C语言练习题100道

    最近有人给我要联系C语言的一些例题,从网上找了一写,顺便写到这里 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的 ...

  2. 「杂谈」如何写好R语言apply家族函数

    感觉好久没发有关R语言的博客了.这一年来,我着手开发了两个R包,但基本没怎么发博客. 原因也很简单,可能是我个人的私心吧,或者说是典型的"理论研究者"的"通病" ...

  3. c语言猜拳游戏中出现的关键词,C语言猜拳游戏代码及分析

    赋值操作符.比较操作符.算术操作符.逻辑操作符.位域操作符,如"="."+="">="."<="." ...

  4. dart 语言是jvm_Dart编译技术在服务端的探索和应用

    前言 最近闲鱼技术团队在Flutter+Dart的多端一体化的基础上,实现了FaaS研发模式.Dart吸取了其它高级语言设计的精华,例如Smalltalk的Image技术.JVM的HotSpot和Da ...

  5. C语言13567星号如何输出,c语言程序编程心得

    c语言程序设计 本课介绍c语言程序设计的基本方法和基本的程序语句. 从程序流程的角度来看,程序可以分为三种基本结构,即顺序结构.分支结构.循环结构.这三种基本结构可以组成所有的各种复杂程序.c语言提供 ...

  6. 北邮国院c语言期末考试题,北邮C语言复习题2014.ppt

    C语句概述 C 程序的编写和实现 源程序 文本文件 C 目标文件 二进制文件 OBJ 可执行文件 二进制文件 EXE 库文件 各种函数 有些编辑系统 可直接从源程序编译连接至可执行程序 F7 comp ...

  7. 学生选课管理系统c语言程序报告,c语言课程设计学生选课管理系统实验报告.doc...

    课程设计报告 课程设计题目:学生选课管理系统 学 号 姓 名:李唐松 专 业:软件工程 班 级: 091107 指导老师:谢小林 2009年1月5 *实验题目: 学分管理程序 *实验时间与地点:200 ...

  8. 餐厅管理程序c语言源代码,课内资源 - 基于C++的餐厅管理程序的设计与实现

    摘 要 随着计算机应用技术的快速发展和日益普及,网络也遍及到我们生活的每个角落,为我们的学习和工作带来极大的方便.很多人都使用过传统的文字,纸张管理手段,与之不同的另外一种管理方式就是利用电脑程序管理 ...

  9. go语言中及格比较特殊的switch语法

    go语言中几种特殊的switch语法 package mainimport ("fmt" )func main() {// go语言中switch的特殊用法// 当没有expr的时 ...

最新文章

  1. 浮点数和整数的区别python_Python中整数和浮点数
  2. 近五年计算机网络技术的发展,计算机网络技术的近期发展
  3. Windows——Modern Standby(现代待机) S0改Suspend to RAM(待机到内存)S3睡眠解决方案(以机械革命F1 i5-11300H为例)
  4. unreal4怎么设置游戏模式_ue4(虚幻4)基础 Unreal4 服务器模式详细介绍
  5. 学了前端可以做什么?前端开发有哪些应用场景??
  6. Oracle 用户信息查询,操作语句
  7. 【vim】vim常用命令
  8. 【工具使用】SecureCRT的下载、安装图文详细过程介绍
  9. 计算机房网络布线培训方案,网络工程综合布线实训授课计划.doc
  10. Android Srt和Ass字幕解析器
  11. 思科模拟器去除登陆界面
  12. 计算机主机启动不了系统怎么办,电脑蓝屏开不了机怎么办
  13. 电脑开机密码忘了怎么办
  14. 大数据与云计算学习:Python网络数据采集
  15. Linux 安装 Composer
  16. 2021年9月国产数据库排行榜:达梦奋起直追紧逼OceanBase,openGauss反超PolarDB再升一位...
  17. ASP错误代码中文说明大全:
  18. Web前端工程师怎么样呢?薪资待遇如何呢?
  19. 《操作系统》总结四(文件管理)
  20. Horizon DAAS环境Log4J远程代码执行漏洞危害减轻措施

热门文章

  1. 计算两个时间的间隔时长
  2. 三、大数据存储——HBase
  3. 如何判断电脑电源故障
  4. 日语中电脑发出奇怪的声音是如何表达的
  5. python宣传视频 抖音_Python生成抖音字符视频,技术流!
  6. 微信公众号三方平台开发【pre_auth_code篇】
  7. Nachos操作系统synch(lab3)
  8. define宏定义函数及用模板函数实现同样的功能
  9. Opencv 笔记7 凸包算法-Graham扫描法
  10. 在微信小程序中实现文字呼吸效果