Loading...

Reference   Language | Libraries | Comparison | Changes

if(条件判断语句)和==、!=、<、>(比较运算符)

if语句与比较运算符一起用于检测某个条件是否达成,如某输入值是否在特定值之上等。if语句的语法是:

if (someVariable > 50)
{
  // 条件为真时执行此处
}

本程序测试someVariable变量的值是否比50大。当大于50时,执行一些语句。换句话说,只要if后面括号里的结果(称之为测试表达式)为真,则执行大括号中的语句(称之为执行语句块);若为假,则跳过大括号中的语句。

if语句后的大括号可以省略。若省略大括号,则只有一条语句(以分号为结尾)成为执行语句。


if (x > 120) digitalWrite(LEDpin, HIGH); 

if (x > 120)
digitalWrite(LEDpin, HIGH); 

if (x > 120){ digitalWrite(LEDpin, HIGH); } 

if (x > 120){ 
  digitalWrite(LEDpin1, HIGH);
  digitalWrite(LEDpin2, HIGH); 
}                                 // all are correct

在小括号里求值的表达式,需要以下操作符:

比较运算操作符

 x == y (x 与 y 是否相等)
 x != y (x 与 y 是否不等)
 x <  y (x 是否小于 y)  
 x >  y (x 是否大于 y) 
 x <= y (x 是否小于等于 y) 
 x >= y (x 是否大于等于 y)

警告:

注意使用赋值运算符的情况(如 if (x = 10) )。一个‘=’表示的是赋值运算符,作用是将x的值设为10(将值10放入x变量的内存中)。两个'='表示的是比较运算符(如 if (x == 10) ),用于测试x和10是否相等。后面这个语句只有x是10时才为真,而前面赋值的那个语句则永远为真。

这是因为C语言按以下规则进行运算 if (x=10) :10赋值给x(只要非0的数赋值的语句,其赋值表达式的值永远为真),因此x现在值为10。此时if的测试表达式值为10,该值永远为真,因为非0值永远为真。所以. if (x = 10)将永远为真,这就不是我们运行if所期待的结果。另外,x被赋值为10,这也不是我们所期待的结果。

if的另外一种分支条件控制结构是if...else]形式。

Reference Home

更正、建议及新的文档应投递至论坛

Arduino手册的文本受 Creative Commons Attribution-ShareAlike 3.0 License协议保护,手册中的例子代码则贡献给公共领域。