Martin McBride, 2017-01-17

Tags condition relational operator

Categories logic programming logic

A *condition* is an expression which is either true or false, for example:

x > 10

Depending on the value of **x**, this expression is either true or false - **x** is either greater than 10, or it is not.

We call **>** (greater than) a *relational* operator.

The 3 basic relational operators are *less than*, *greater than* and *equals*.

In this diagram, the inner circle contains values which are less than 10, the middle circle contains the value 10, and the outer circle contains values which are greater than 10:

We can shade the areas to represent different conditions:

The inner circle represents the condition **x** is less than 10, usually written as **x < 10**.

The outer circle represents the condition **x** is greater than 10, usually written as **x > 10**.

The middle circle represents the condition **x** equals 10, usually written as **x == 10**. Notice that we use a double equals sign for
equality, because writing **x = 10** means "set **x** equal to 10".

Most languages use these symbols, although some older languages are different, for example they might use **x LT 10** for *less than*.

There are 3 more relational operators, which can be found by shading 2 circles:

The outer 2 circles represent the condition that **x** is greater than or equal to 10. This is usually written as **x >= 10**.

The inner 2 circles represent the condition that **x** is less than or equal to 10. This is usually written as **x <= 10**.

What if we shade the outer circle and the inner circle, but not the middle circle? This represents the case where **x** is either greater than
10, or less than 10. In other words, it means that **x** is *not equal* to 10. This is usually written as **x != 10**.

As an example, suppose we have a computer game which is so scary that you have to be at least 10 to play it. The following code **wouldn't**
work:

if age > 10 print("You can play the game")

Do you see the problem? Someone who was actually 10, who should be able to play the game, would fail the test because their **age** isn't greater than 10.
Here is the correct test:

if age >= 10 print("You can play the game")

Some of these conditions are *opposites* of each other.

What is the opposite of *less than*? At first, you might think it is *greater than*, but that isn't quite right. In fact, the opposite of
*less than* is *greater than or equal*.

Look at this code:

if not age < 10 print("You can play the game")

This does the same thing as the previous (working) code. If your age is not less than 10, that is exactly the same as saying your age is greater than or
equal to 10. We can also see that from the shaded rings, the circle which is shaded in the **<** case is the only circle which isn't shaded in the **>=**
case:

Here are the 3 opposites:

**<**is opposite to**>=****>**is opposite to**<=****==**is opposite to**!=**

Copyright (c) Axlesoft Ltd 2020