# Comparison Operators

Comparison operators allow us to compare two values against one another. A comparison returns a boolean result of either **true** or **false**. The table below lists each of the common comparison operators and their usages:

| Operator | Usage                    |
| -------- | ------------------------ |
| >        | Greater Than             |
| <        | Less Than                |
| >=       | Greater Than Or Equal To |
| <=       | Less Than Or Equal To    |
| ==       | Equal To                 |
| !=       | Not Equal To             |

## A Basic Comparison

In the following example, we compare two variables `x` and `y`. We store the result of this comparison in variable `z`.

```
int x = 10;
int y = 8;

boolean z = x > y;
System.out.println(z);
```

What will get printed to the screen? The above comparison, x > y, is evaluating if 10 is greater than 8. Because 10 is indeed greater than 8, `z` is assigned a value of true. Thus, `true` will get printed to the screen.

## More Practice with Comparisons

Let's get a little more practice. Take a look at the following code segment below. Pay close attention to each comparison and the operator being used.

```
// Declare some integer variables to use for practice comparisons below.
int a = 3;
int b = 5;
int c = 2;
int d = 3;

// We store the boolean results of each comparison into boolean variables t-z.
boolean t = a > 0;
boolean u = a == d;
boolean v = d >= b;
boolean w = b > c;
boolean x = a != d;
boolean y = d < = a;
boolean z = 4 < = c;

/* In addition to integers, it is possible to compare other data types too.
   Here we are comparing some of the boolean values computed above (t-z).
   We store the results into new boolean variables. */
boolean boolComparison1 = t == u;
boolean boolComparison2 = t == w;
boolean boolComparison3 = t != u;
boolean boolComparison4 = x != y;
```

```
// Print out all the integer comparison results
System.out.println("t = " + t);
System.out.println("u = " + u);
System.out.println("v = " + v);
System.out.println("w = " + w);
System.out.println("x = " + x);
System.out.println("y = " + y);
System.out.println("z = " + z);

// Print out all the boolean comparison results
System.out.println("boolComparison1 = " + boolComparison1);
System.out.println("boolComparison2 = " + boolComparison2);
System.out.println("boolComparison3 = " + boolComparison3);
System.out.println("boolComparison4 = " + boolComparison4);
```

When we run this code, what boolean values (**true** or **false**) will get printed to the screen for variables t through z? What boolean values (**true** or **false**) will get printed to the screen for each of the boolComparison variables? See if you can figure it out on your own. The solution is given below.

### Solution:

Our program prints out:

```
t = true
u = true
v = false
w = true
x = false
y = true
z = false
boolComparison1 = true
boolComparison2 = true
boolComparison3 = false
boolComparison4 = true
```

## Comparison Operators in a Program

Suppose we want to write a program which restricts people under a certain height from riding on a roller coaster. For this particular roller coaster, people who are under 4 feet (48 inches) are not allowed on the ride. How would we do this?

```
int heightInInches = readInt("How tall are you (in inches)? ");
boolean isTallEnough = heightInInches >= 48;
System.out.println("Can ride on the roller coaster: " + isTallEnough);
```

After getting the potential rider's height in inches, we do a comparison to ensure that they are over 48 inches. The result of this comparison is then printed out.

## Pitfalls

A common mistake is using `=` when you actually want to use `==`. `=` is used for assignment of variables whereas `==` is used for comparing the equality of two values.

For example, `x = 5` stores the value `5` into the variable `x`. However, `x == 5` tests to see if the value `5` is equal to the variable `x` and then returns either true or false. **They are not the same thing!**
