比較運算符

來自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航搜索

if,用于和比較運算符聯(lián)合使用,測試某一條件是否到達,例如一個輸入超出某一數(shù)值。if條件測試的格式:

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

該程序測試someVariable是否大于50。如果是, 程序執(zhí)行特定的動作。換句話說,如果圓括號中的語句為真,花括號中的語句就會運行。否則,程序跳過該代碼。

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))。單個等號是賦值運算符,這里設(shè)置x為10(將值10存入變量x)。改用雙等號(例如if (x == 10)),這個是比較運算符,用于測試x是否等于10。后者只在x等于10時返回真,但是前者將總是為真。

這是因為C如下求值語句if(x=10):10分配給x(切記單個等號是賦值運算符),因此x現(xiàn)在為10。然后'if'條件求值10,其總是為真,由于任何非零數(shù)值都為真值。由此,if (x = 10)將總是求值為真,這不是使用if語句所期望的結(jié)果。另外,變量x將被設(shè)置為10,這也不是期望的操作。

if也可以是使用[if...else]的分支控制結(jié)構(gòu)的一部分。