当前位置:首页 > arduino从零开始学 - 图文
开始Arduino之旅 第2章 Serial.println(intArray[i]); //打印数组元素 } }
void loop() {
// put your main code here, to run repeatedly: }
2.7 Arduino语法——运算符
本节介绍最常用的一些Arduino运算符,包括赋值运算符、算数运算符、关系运算符、逻辑运算符和递增/减运算符。
2.7.1 赋值运算符
=(等于)为指定某个变量的值,例如:A=x,将x变量的值放入A变量。
+=(加等于)为加入某个变量的值,例如:B+=x,将B变量的值与x变量的值相加,其和放入B变量,这与B=B+x表达式相同。
-=(减等于)为减去某个变量的值,例如:C-=x,将C变量的值减去x变量的值,其差放入C变量,与C=C-x表达式相同。
*=(乘等于)为乘入某个变量的值,例如:D*=x,将D变量的值与x变量的值相乘,其积放入D变量,与D=D*x表达式相同。
/=(除等于)为和某个变量的值做商,例如:E/=x,将E变量的值除以x变量的值,其商放入E变量,与E=E/x表达式相同。
%=(取余等于)对某个变量的值进行取余数,例如:F%=x,将F变量的值除以x变量的值,其余数放入F变量,与F=F%x表达式相同。
&=(与等于)对某个变量的值按位进行与运算,例如:G&=x,将G变量的值与x变量的值做AND运算,其结果放入G变量,与G=G&x表达式相同。
|=(或等于)对某个变量的值按位进行或运算,例如:H|=x,将H变量的值与x变量的值相OR运算,其结果放入变量H,与H=H|x相同。
^=(异或等于)对某个变量的值按位进行异或运算,例如:I^=x,将I变量的值与x变量的值做XOR运算,其结果放入变量I,与I=I^x相同。
<<=(左移等于)将某个变量的值按位进行左移,例如:J<<=n,将J变量的值左移n位,与J=J< >>=(右移等于)将某个变量的值按位进行右移,例如:K>>=n,将K变量的值右移n位,与K=K>>n相同。 2.7.2 算数运算符 +(加)对两个值进行求和,例如:A=x+y,将x与y变量的值相加,其和放入A变量。 -(减)对两个值进行做差,例如:B=x-y,将x变量的值减去y变量的值,其差放入B变量。 ·33· Arduino开发从零开始学 *(乘)对两个值进行乘法运算,例如:C=x*y,将x与y变量的值相乘,其积放入C变量。 /(除)对两个值进行除法运算,例如:D=x/y,将x变量的值除以y变量的值,其商放入D变量。 %(取余)对两个值进行取余运算,例如:E=x%y,将x变量的值除以y变量的值,其余数放入E变量。 2.7.3 关系运算符 ==(相等)判断两个值是否相等,例如:x==y,比较x与y变量的值是否相等,相等则其结果为1,不相等则为0。 !=(不等)判断两个值是否不等,例如:x!=y,比较x与y变量的值是否相等,不相等则其结果为1,相等则为0。 <(小于)判断运算符左边的值是否小于右边的值,例如:x >(大于)判断运算符左边的值是否大于右边的值,例如:x>y,若x变量的值大于y变量的值,其结果为1,否则为0。 <=(小等于)判断运算符左边的值是否小于等于右边的值,例如:x<=y,若x变量的值小等于y变量的值,其结果为1,否则为0。 >=(大等于)判断运算符左边的值是否大于等于右边的值,例如:x>=y,若x变量的值大等于y变量的值,其结果为1,否则为0。 2.7.4 逻辑运算符 &&(与运算)对两个表达式的布尔值进行按位与运算,例如:(x>y)&&(y>z),若x变量的值大于y变量的值,且y变量的值大于z变量的值,则其结果为1,否则为0。 ||(或运算)对两个表达式的布尔值进行按位或运算,例如:(x>y)||(y>z),若x变量的值大于y变量的值,或y变量的值大于z变量的值,则其结果为1,否则为0。 !(非运算)对某个布尔值进行非运算,例如:!(x>y),若x变量的值大于y变量的值,则其结果为0,否则为1。 2.7.5 递增/减运算符 ++(加1)将运算符左边的值自增1,例如:x++,将x变量的值加1,表示在使用x之后,再使x值加1。 --(减1)将运算符左边的值自减1,例如:x--,将x变量的值减1,表示在使用x之后,再使x值减1。 2.8 Arduino语法——条件判断语句 Arduino语言基于C和C++,有过开发经验的都知道,C语言中有一些内建指令,这些内建指 ·34· 开始Arduino之旅 第2章 令中有很重要的几个语句经常用到,这里介绍常用的条件判断语句if和else。 if语句 在考虑问题和解决问题的过程中,很多事情不是一帆风顺的,需要进行判断再做出不同的行为。这里就需要用到了条件语句,有些语句并不是一直执行的,需要一定的条件去触发。同时,针对同一个变量,不同的值进行不同的判断,也需要用到条件语句。同样,程序如果需要运行一部分,也可以进行条件判断。 if的语法如下: if(delayTime<100) { 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:改变闪烁频率的闪灯程序 ·35· Arduino开发从零开始学 int ledPin = 13; int delayTime = 1000; void setup() { pinMode(ledPin,OUTPUT); } void loop() { digitalWrite(ledPin,HIGH); delay(delayTime); digitalWrite(ledPin,LOW); delay(delayTime); delayTime=delayTime-100; if(delayTime<100) { delayTime=1000; } } //点亮小灯 //延时 //熄灭小灯 //每次将延时时间减少0.1s //当延时时间小于0.1s时,重新校准延时为1s 在这个程序中用到了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语句的闪灯程序 int ledPin = 13; int delayTime = 1000; void setup() { pinMode(ledPin,OUTPUT); } void loop() { digitalWrite(ledPin,HIGH); delay(delayTime); digitalWrite(ledPin,LOW); delay(delayTime); if(delayTime<100) { ·36·
共分享92篇相关文档