--- title: if categories: [ "Structure" ] subCategories: [ "Control Structure" ] --- = if // OVERVIEW SECTION STARTS [#overview] -- [float] === Description The `if` statement checks for a condition and executes the following statement or set of statements if the condition is 'true'. [%hardbreaks] [float] === Syntax [source,arduino] ---- if (condition) { //statement(s) } ---- [float] === Parameters `condition`: a boolean expression (i.e., can be `true` or `false`). -- // OVERVIEW SECTION ENDS // HOW TO USE SECTION STARTS [#howtouse] -- [float] === Example 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. [%hardbreaks] [source,arduino] ---- 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 ---- [%hardbreaks] [float] === Notes and Warnings The statements being evaluated inside the parentheses require the use of one or more operators shown below. [%hardbreaks] *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 (http://arduino.cc/en/Reference/Assignment[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. [%hardbreaks] -- // HOW TO USE SECTION ENDS // SEE ALSO SECTION BEGINS [#see_also] -- [float] === See also [role="language"] * #LANGUAGE# link:../else[else] -- // SEE ALSO SECTION ENDS