比较运算符

来自ALSROBOT WiKi
跳转至: 导航搜索

if,用于和比较运算符联合使用,测试某一条件是否到达,例如一个输入超出某一数值。if条件测试的格式:

if (someVariable > 50)
{
  // do something here
}
 

该程序测试someVariable是否大于50。如果是, 程序实行特定的动作。换句话说,如果圆括号中的语句为真,花括号中的语句就会运行。否则,程序跳过该代码。

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 is equal to y)
 x != y (x is not equal to y)
 x <  y (x is less than y)  
 x >  y (x is greater than y) 
 x <= y (x is less than or equal to y) 
 x >= y (x is greater than or equal to y)
 

警告:

小心偶然地使用单个等号(例如if(x = 10))。单个等号是赋值运算符,这里设置x为10(将值10存入变量x)。改用双等号(例如if (x == 10)),这个是比较运算符,用于测试x是否等于10。后者只在x等于10时返回真,但是前者将总是为真。

这是因为C如下求值语句if(x=10):10分配给x(切记单个等号是赋值运算符),因此x现在为10。然后'if'条件求值10,其总是为真,由于任何非零数值都为真值。由此,if (x = 10)将总是求值为真,这不是使用if语句所希望的结果。另外,变量x将被设置为10,这也不是希望的操作。

if也可以是使用[if...else]的分支控制结构的一部分。