|
|
51CTO旗下网站
|
|
移动端

2.8 Arduino语法——条件判断语句

《Arduino开发从零开始学:学电子的都玩这个》第2章开始Arduino之旅,本章开始进行Arduino入门级学习,从安装IDE环境开始,逐步开始第一次编写程序、下载程序。本章还将学习Arduino语言和语法,并帮助读者熟练地使用Arduino编程完成一些小实验项目。本节为大家介绍Arduino语法——条件判断语句。

作者:宋楠/韩广义来源:清华大学出版社|2014-10-03 13:59

2.8  Arduino语法——条件判断语句

Arduino语言基于C和C++,有过开发经验的都知道,C语言中有一些内建指令,这些内建指令中有很重要的几个语句经常用到,这里介绍常用的条件判断语句if和else。

if语句

在考虑问题和解决问题的过程中,很多事情不是一帆风顺的,需要进行判断再做出不同的行为。这里就需要用到了条件语句,有些语句并不是一直执行的,需要一定的条件去触发。同时,针对同一个变量,不同的值进行不同的判断,也需要用到条件语句。同样,程序如果需要运行一部分,也可以进行条件判断。

if的语法如下:

  1. if(delayTime<100)  
  2. {  
  3.     delayTime=1000;  

如果if后面的条件满足,就执行{ }内的语句。

if中表示判断的语句使用到的关系运算符如表2-3所示。

表2-3  关系运算符

运算符

含义

例子

结果

<

小于

1<2

2<1

>

大于

2>1

1>1

<=

小于等于

2<=2

3<=2

(续表)

运算符

含义

例子

结果

>=

大于等于

3>=3

2>=3

==

等于

2==2

1==2

!=

不等于

1!=2

2!=2

【示例4】  使用if制作改变闪烁频率的闪灯程序

在介绍变量时,用了一个闪灯的例子进行举例说明,***加了一行代码来使小灯闪烁的频率越来越小,即小灯越闪越慢。可是如果希望小灯越闪越快,并且到一定的程度重新恢复初始的闪灯频率,应该怎么办呢?看下面的程序。

程序2-7:改变闪烁频率的闪灯程序

  1. int ledPin = 13;  
  2. int delayTime = 1000;  
  3.  
  4. void setup()  
  5. {  
  6.     pinMode(ledPin,OUTPUT);  
  7. }  
  8.  
  9. void loop()  
  10. {  
  11.     digitalWrite(ledPin,HIGH);              //点亮小灯  
  12.     delay(delayTime);                   //延时  
  13.     digitalWrite(ledPin,LOW);               //熄灭小灯  
  14.     delay(delayTime);  
  15.     delayTimedelayTime=delayTime-100;            //每次将延时时间减少0.1s  
  16.     if(delayTime<100)  
  17.     {  
  18.         delayTime=1000;         //当延时时间小于0.1s时,重新校准延时为1s  
  19.     }  

在这个程序中用到了if条件判断语句,程序每次运行到if语句时都会进行检查,在delayTime>=100时,大括号里面的delayTime=1000是不执行的。程序进入下一次循环。当delayTime<100,delayTime=1000被执行,delayTime的值改变成为1000,并进入到下一次循环中。

【示例5】  使用if…else制作改变闪烁频率的闪灯程序

if语句另一种形式也很常用,即if…else语句。这种语句语义为:在条件成立时执行if语句下括号的内容,不成立时执行else语句下的内容。

对闪灯的程序进行修改,使用else语句,如程序2-8所示。

程序2-8:使用else语句的闪灯程序

  1. int ledPin = 13;  
  2. int delayTime = 1000;  
  3.  
  4. void setup()  
  5. {  
  6.     pinMode(ledPin,OUTPUT);  
  7. }  
  8.  
  9. void loop()  
  10. {  
  11.     digitalWrite(ledPin,HIGH);  
  12.     delay(delayTime);  
  13.     digitalWrite(ledPin,LOW);  
  14.     delay(delayTime);  
  15.     if(delayTime<100)  
  16.     {  
  17.         delayTime=1000;         //当延时小于0.1s时校准延时时间为1s  
  18.     }  
  19.     else  
  20.     {  
  21.         delayTimedelayTime=delayTime-100;    //大于或等于0.1s时将延时时间缩短  
  22.     }  

if-else语句还可以多次连用来进行多次选择判断。使用时应判断准确逻辑关系,以避免产生错误。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

视频课程+更多

VMware vSphere  VCP 6.5 | 6.7 (附加Horizon 7.6)

VMware vSphere VCP 6.5 | 6.7 (附加Horizon

讲师:郝旺203461人学习过

你必学的SSM实战案例

你必学的SSM实战案例

讲师:齐毅12188人学习过

架构之路 - JAVA之设计模式精讲

架构之路 - JAVA之设计模式精讲

讲师:王军伟14015人学习过

读 书 +更多

网管员必读—-网络安全

本书共10章,介绍的内容包括恶意软件(包括病毒、木马和蠕虫等)的深度防御方法,黑客的主要类型和防御方法,企业网络内、外部网络防火墙系...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客