aboutsummaryrefslogtreecommitdiffstats
path: root/source/arduino/boolean.rst
diff options
context:
space:
mode:
Diffstat (limited to 'source/arduino/boolean.rst')
-rw-r--r--source/arduino/boolean.rst94
1 files changed, 94 insertions, 0 deletions
diff --git a/source/arduino/boolean.rst b/source/arduino/boolean.rst
new file mode 100644
index 0000000..f109bdb
--- /dev/null
+++ b/source/arduino/boolean.rst
@@ -0,0 +1,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>`_
+
+