## Language syntax

### Boolean operators

These can be used inside the condition of an if statement.

#### && (and)

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

```
if (digitalRead(D2) == HIGH && digitalRead(D3) == HIGH)
{
// read two switches
// ...
}
//is true only if both inputs are high.
```

#### || (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.

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