[Control Structures]


if, which is used in conjunction with a comparison operator, tests whether a certain condition has been reached, such as an input being above a certain number.


if (condition) {


condition: a boolean expression (i.e., can be true 或 false).

if (someVariable > 50)
  // do something here

The program tests to see if someVariable is greater than 50. If it is, the program takes a particular action. Put another way, if the statement in parentheses is true, the statements inside the brackets are run. If not, the program skips over the code.


The brackets may be omitted after an if statement. If this is done, the next line (defined by the semicolon) becomes the only conditional statement.

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

Notes and Warnings

The statements being evaluated inside the parentheses require the use of one or more operators shown below.

Comparison Operators:

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)


Beware of accidentally using the single equal sign (e.g. if (x = 10) ). The single equal sign is the assignment operator and sets x to 10 (puts the value 10 into the variable x). Instead, use the double equal sign (e.g. if (x == 10) ), which is the comparison operator, and tests whether x is equal to 10 or not. The latter statement is only true if x equals 10, but the former statement will always be true.

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.


86Duino 參考的文本是根據 Creative Commons Attribution-ShareAlike 3.0 License,部分文本是從 the Arduino reference 修改的。 參考中的代碼示例已發佈到公共領域。