Comparison Operators (==, !=, <, >, <=, >=) — Maple v0.0.9 Documentation

### Navigation

- next
- previous |
- LeafLabs |
- Docs Home |
- Index »
- Complete Language Index »

# Comparison Operators (`==`, `!=`, `<`, `>`, `<=`, `>=`)

The comparison operators `==`, `!=`, `<`, `>`, `<=`, and `>=` are used to compare two numbers. They are true when the comparison is true, and false otherwise. They are based on the symbols =, ≠, <, >, ≤, and ≥ from mathematics.

Here are some examples, with their meaning in comments:

    // "eq" is true when x is equal to y
    bool eq = (x == y);

    // "neq" is true when x is different than y
    bool neq = (x != y);

    // "lt" is true when x is less than, but NOT equal to, y
    bool lt = (x <  y);

    // "gt" is true when x is greater than, but NOT equal to, y
    bool gt = (x >  y);

    // "lte" is true when x is less than or equal to y
    bool lte = (x <= y);

    // "gte" is true when x is greater than or equal to y
    bool gte = (x >= y);

The parentheses are optional; they are present only for clarity. For example, the following two lines are the same:

    bool eq = x == y;

    bool eq = (x == y);

## Uses

Comparison operators, along with boolean operators, are useful inside the conditionals of if statements. Here’s one example:

    if (x < 50) {
       // only execute these lines if x is less than 50
       SerialUSB.println("delaying:");
       SerialUSB.println(x);
       delay(x);
    }

Warning

Beware of accidentally using the single equal sign (`=`) when you meant to test if two numbers are equal (`==`). This is a common mistake inside of `if` statement conditionals, e.g.:

    // DON'T MAKE THIS MISTAKE
    if (x = 10) {
       // body
    }

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 assignment operator), so x now contains 10. Then the ‘if’ conditional evaluates 10, which evaluates to true, since any non-zero number evaluates to `true`.

Consequently, the conditional of an `if` statement like `if (x = 10) {...}` will always evaluate to `true`, and the variable x will be set to 10, which is probably not what you meant.

(This sometimes has uses, though, so just because an assignment appears within a conditional doesn’t mean it’s automatically wrong. Be careful to know what you mean.)

License and Attribution

This documentation page was adapted from the Arduino Reference Documentation, which is released under a Creative Commons Attribution-ShareAlike 3.0 License.

### Navigation

- next
- previous |
- LeafLabs |
- Docs Home |
- Index »
- Complete Language Index »