If(条件判断语句) 和 比较运算符:修訂版本之間的差異

從 YFRobotwiki
跳到: 導覽搜尋
第 8 行: 第 8 行:
 
 上面的程序为判断someVariable 是否大于50。如果大于,执行指定代码。换句话说,如果if后圆括号中的语句为真,则执行大括号中的代码。反之,则跳过大括号中的代码。
 
 上面的程序为判断someVariable 是否大于50。如果大于,执行指定代码。换句话说,如果if后圆括号中的语句为真,则执行大括号中的代码。反之,则跳过大括号中的代码。
  
if语句后的大括号可以省略。'''如果这样写,下一行的语句(以分号结尾)将是唯一条件语句'''。
+
if语句后的大括号可以省略。<font color="chocolate">'''如果这样写,下一行的语句(以分号结尾)将是唯一条件语句'''</font>
  
 
<pre style="color:dimgray">
 
<pre style="color:dimgray">
第 40 行: 第 40 行:
 
 谨防误使用单等号(例如if(x = 10))。单等号是赋值运算符,是用来设置x的值为10(将值10存入变量x中)。使用双等号(例如if(x == 10)),这是比较运算符,用来测试x是否等于10。后者只有当x等于10时为真,而前者总是真。
 
 谨防误使用单等号(例如if(x = 10))。单等号是赋值运算符,是用来设置x的值为10(将值10存入变量x中)。使用双等号(例如if(x == 10)),这是比较运算符,用来测试x是否等于10。后者只有当x等于10时为真,而前者总是真。
  
 这是因为C语言中 该语句if(x=10)是这样执行的:10被赋值给了x(记住单等号是[[= (赋值运算符)|赋值运算符]])
+
 这是因为C语言中 该语句if(x=10)是这样执行的:10被赋值给了x(记住单等号是[[= (赋值运算符)|赋值运算符]]), 所以现在x为10。此时if的条件语句值为10,该值一直为真,因为任何非0数都为真。因此,if(x=10) 将总为真,这不是我们使用 if 语句想要的结果。此外,变量x将被赋值为10,这也不是所期望的结果。
This is because C evaluates the statement if (x=10) as follows: 10 is assigned to x (remember that the single equal sign is the assignment operator), so x now contains 10. Then the 'if' conditional evaluates 10, which always evaluates to TRUE, since any non-zero number evaluates to TRUE. Consequently, if (x = 10) will always evaluate to TRUE, which is not the desired result when using an 'if' statement. Additionally, the variable x will be set to 10, which is also not a desired action.
+
  
if can also be part of a branching control structure using the [[if...else]] construction.
+
if 也可以使用[[if...else]] 控制一个分支控制结构的一部分。
 +
 
 +
 
 +
----
  
  

2015年6月4日 (四) 17:37的修訂版本

if,它與比較運算符一起使用,用於判斷條件是否滿足,如一個輸入值是否大於指定值。if語句語法格式:

if (someVariable > 50)
{
  // 在此添加执行代码
}

上面的程序為判斷someVariable 是否大於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); 
}                                 // 以上几种书写方式都正确

在圓括號中的語句需要使用一個或多個運算符:

比較運算符:

 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,該值一直為真,因為任何非0數都為真。因此,if(x=10)將總為真,這不是我們使用 if 語句想要的結果。此外,變量x將被賦值為10,這也不是所期望的結果。

if也可以使用if...else 控制一個分支控制結構的一部分。




返回Arduino語法參考列表

原文出處:Arduino官網

更多建議和問題歡迎反饋至 YFRobot論壇