if (條件) 及 ==, !=, <, > (比較運算子)

if 條件敘述,配合一個比較運算子,用於測試某種條件是否成立。例如,測試一個外部輸入數值是否大於一個給定數字。if 條件敘述的語法格式如下:

if (someVariable > 50)
{
  // 在此做條件成立後想做的事
}

上面程式測試是否 someVariable 大於 50,如果成立,就執行寫在大括號裡的動作;換句話說,如果括號內敘述為真,則大括號內的程式碼就會被執行,反之,則跳過這些程式碼不執行,也就是這段程式碼被省略掉了。

如果條件成立後要執行的程式碼只有一行,大括號可以省略不寫。

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 等於 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,而不是比較 x 與 10 是否相等。

此外,if (x = 10) 這樣的條件敘述將總是為真。這是因為 C 語言會如下執行此條件敘述:先把 10 賦值給 x(記得單一等號為指派運算子),然後 if 敘述對 x 求值。因為 if 敘述對任何非零值求值皆為 TRUE,而此時 x 包含非零值,故條件式將永遠成立,這個結果使得條件判斷失去意義,並非期望。此外,此條件敘述把 x 賦值為 10,也不是期望的動作。

if 敘述也可以構成分支控制結構的一部份,請參考 if…else 的説明。


語法參考主頁面

本頁由熱血青年 LBU 譯自英文版。

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.