aboutsummaryrefslogtreecommitdiffstats
path: root/docs/source/arduino/boolean.rst
blob: f109bdb8176868484ee540e6969e211dceb69558 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
.. _arduino-boolean:

Boolean Operators
=================

These can be used inside the condition of an
`if <http://arduino.cc/en/Reference/If>`_ statement.



&& (logical and)
~~~~~~~~~~~~~~~~

True only if both operands are true, e.g.

::

    if (digitalRead(2) == HIGH  && digitalRead(3) == HIGH) { // read two switches 
      // ...
    } 

is true only if both inputs are high.



\|\| (logical or)
~~~~~~~~~~~~~~~~~

True if either operand is true, e.g.

::

    if (x > 0 || y > 0) {
      // ...
    } 

is true if either x or y is greater than 0.



! (not)
~~~~~~~

True if the operand is false, e.g.

::

    if (!x) { 
      // ...
    } 

is true if x is false (i.e. if x equals 0).



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 \|\| (double pipe) operator
with the bitwise OR operator \| (single pipe).



The bitwise not ~ (tilde) looks much different than the boolean not
! (exclamation point or "bang" as the programmers say) but you
still have to be sure which one you want where.



Examples
--------

::

    if (a >= 10 && a <= 20){}   // true if a is between 10 and 20



See also
--------


-  `& <http://arduino.cc/en/Reference/BitwiseAnd>`_ (bitwise AND)
-  `\| <http://arduino.cc/en/Reference/BitwiseAnd>`_ (bitwise OR)
-  `~ <http://arduino.cc/en/Reference/BitwiseXorNot>`_ (bitwise NOT
-  `if <http://arduino.cc/en/Reference/If>`_