Boolean Operators¶
These can be used inside the condition of an if statement. Evaluate to true or false.
&& (logical and)¶
True only if both operands are true. For example:
if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) { // read two switches
// ...
}
is true only if both inputs are high. Another example:
if (a >= 10 && a <= 20){} // true if a is between 10 and 20
Be careful not to say 10 <= a <= 20
! This won’t work the way
you want. You have to separately test whether a
is at least 10
using a >= 10
, then test whether a
is at most 20 using a <=
20
, then combine the results using &&
.
|| (logical or)¶
True if either operand is true. For example:
if (x > 0 || y > 0) {
// ...
}
is true if either x
or y
is greater than 0.
! (logical not)¶
True if the operand is false. For example:
if (!x) {
// ...
}
is true if x
is false (i.e. if x
is zero).
Some Advice¶
Warning
Make sure you don’t mistake the boolean AND operator &&
(double ampersand) for the bitwise AND operator &
(single ampersand). They are
entirely different beasts.
Similarly, do not confuse the boolean OR operator ||
(double
pipe) with the bitwise OR operator
|
(single pipe).
The bitwise NOT operator ~
(tilde) looks much different than the boolean not operator !
(exclamation point, or “bang”, as some programmers say), but you
still have to be sure which one you want.
See Also¶
- Bitwise operators (
&
,|
,^
,~
) - Compound bitwise operators (
&=
,|=
,^=
). - if statement
License and Attribution
Portions of this page were adapted from the Arduino Reference Documentation, which is released under a Creative Commons Attribution-ShareAlike 3.0 License.