Ruby Comparison Operators
Comparison operators compare two values and return a boolean result (true or false). For example,
a = 3
b = 2
puts a > b
# Output: true
Here, we used the > comparison operator to check whether a (which is 3) is greater than b (which is 2).
Since 3 is greater than 2, the output is true.
Note: In the above example, a > b is called a boolean expression because it evaluates to a boolean value (true or false).
Commonly Used Comparison Operators
| Operator | Meaning | Example |
|---|---|---|
== |
Equal to | 3 == 5 (Output: false) |
!= |
Not equal to | 3 != 4 (Output: true) |
> |
Greater than | 4 > 4 (Output: false) |
< |
Less than | 3 < 3 (Output: false) |
>= |
Greater than or equal to | 4 >= 4 (Output: true) |
<= |
Less than or equal to | 3 <= 3 (Output: true) |
<=> |
Combined comparison (returns -1, 0, or 1) | 5 <=> 10 (Output: -1) |
1. Ruby Equal To Operator
The equal to operator == evaluates to
true- If the values of the operands are equal.false- If the values of the operands are not equal.
Note: In Ruby, == is a comparison operator, whereas = is an assignment operator. If you mistakenly use = instead of ==, you might get unexpected results.
Example
num1 = 10
num2 = 15
num3 = 10
string_num = "10"
# Compare numbers with numbers
puts num1 == num2 # false
puts num1 == num3 # true
# Compare number with string
puts num1 == string_num # false
Here's how this program works:
| Expression | Result | Reason |
|---|---|---|
num1 == num2 |
false |
num1 and num2 have different values. |
num1 == num3 |
true |
num1 and num3 have the same value. |
num1 == string_num |
false |
num1 and string_num belong to different data types, even if the values look similar. |
Comparison Between Different Types
In the previous example, using the == operator to compare the number 10 with the string "10" resulted in a false value, even though both values look similar.
However, there are cases where comparing similar data of different types will give us true. For example,
# Comparing identical integer and float values
puts 4 == 4.0
# Output: true
Although 4 is an Integer and 4.0 is a Float, Ruby considers them equal because their numeric values are the same.
2. Not Equal To Operator
The not equal to operator != evaluates to
true- If the values of the operands aren't equal.false- If the values of the operands are equal.
Example
num1 = 10
num2 = 15
num3 = 10
string_num = "10"
# Compare numbers with numbers
puts num1 != num2 # true
puts num1 != num3 # false
# Compare number with string
puts num1 != string_num # true
Note: The != operator returns the opposite result of the == operator.
3. Greater Than Operator
The greater than operator > returns
true- If the left operand is greater than the right operand.false- If the left operand is not greater than the right operand.
Example
num1 = 10
num2 = 15
# Left operand is smaller
puts num1 > num2 # false
# Left operand is greater
puts num2 > num1 # true
# Both operands are equal
puts num1 > 10 # false
4. Greater Than Or Equal To Operator
The greater than or equal to operator >= returns
true- If the left operand is greater than or equal to the right operand.false- If the left operand is less than the right operand.
Example
num1 = 10
num2 = 15
# Left operand is smaller
puts num1 >= num2 # false
# Left operand is greater
puts num2 >= num1 # true
# Both operands are equal
puts num1 >= 10 # true
5. Less Than Operator
The less than operator < returns
true- If the left operand is less than the right operand.false- If the left operand is not less than the right operand.
Example
num1 = 10
num2 = 15
# Left operand is smaller
puts num1 < num2 # true
# Left operand is greater
puts num2 < num1 # false
# Both operands are equal
puts num1 < 10 # false
6. Less Than Or Equal To Operator
The less than or equal to operator <= returns
true- If the left operand is less than or equal to the right operand.false- If the left operand is greater than the right operand.
Example
num1 = 10
num2 = 15
# Left operand is smaller
puts num1 <= num2 # true
# Left operand is greater
puts num2 <= num1 # false
# Both operands are equal
puts num1 <= 10 # true
7. Combined Comparison Operator
The combined comparison operator <=> returns
- -1 if the left operand is less than the right operand.
- 1 if the left operand is greater than the right operand.
- 0 if both operands are equal.
Note: The <=> operator is also known as the spaceship operator.
Example
num1 = 10
num2 = 15
# Left operand is smaller
puts num1 <=> num2 # -1
# Left operand is greater
puts num2 <=> num1 # 1
# Both operands are equal
puts num1 <=> 10 # 0
Ruby Logical Operators
Logical operators return a boolean value by evaluating boolean expressions. For example,
x = 5
y = 3
puts (x < 6) && (y < 5)
# Output: true
Here, && is the logical operator AND.
Since both the boolean expressions x < 6 and y < 5 are true, evaluating them with the && operator also results in true.
Commonly Used Logical Operators
| Operator | Syntax | Description |
|---|---|---|
&& |
expression1 && expression2 |
true only if both expression1 and expression2 are true |
|| |
expression1 || expression2 |
true if either expression1 or expression2 is true |
! |
!expression |
false if expression is true, and true if the expression is false |
1. Logical AND Operator (&&)
The logical AND operator && returns true if both the expressions are true. For example,
x = 2
# Both expressions are true
puts (x < 4) && (3 >= x) # true
# Only one expression is true
puts (x <= 4) && (x == 3) # false
# Both expressions are false
puts (x > 4) && (x == 3) # false
Here's how the program works:
| Expression | Result | Reason |
|---|---|---|
(x < 4) && (3 >= x) |
true |
Both expressions are true. |
(x <= 4) && (x == 3) |
false |
The expression x == 3 is false. |
(x > 4) && (x == 3) |
false |
Both expressions are false. |
2. Logical OR Operator ( || )
The logical OR operator || returns true if at least one expression is true. For example,
x = 2
# Both expressions are true
puts (x < 4) || (3 >= x) # true
# Only one expression is true
puts (x <= 4) || (x == 3) # true
# Both expressions are false
puts (x > 4) || (x == 3) # false
Here's how the program works:
| Expression | Result | Reason |
|---|---|---|
(x < 4) || (3 >= x) |
true |
Both expressions are true |
(x <= 4) || (x == 3) |
true |
The expression x <= 4 is true |
(x > 4) || (x == 3) |
false |
Both expressions are false |
3. Logical NOT Operator ( ! )
The logical NOT operator ! returns true if the specified expression is false and vice versa. For example,
x = 2
# NOT on true
puts !true # false
# NOT on false
puts !false # true
# Comparison examples
puts !(x > 3) # true
puts !(x == 2) # false
Here's how the program works:
| Expression | Result | Reason |
|---|---|---|
!true |
false |
! inverts the value of true to false |
!false |
true |
! inverts the value of false to true |
!(x > 3) |
true |
! inverts the false value of (x > 3) to true |
!(x == 2) |
false |
! inverts the true value of (x == 2) to false |
Frequently Asked Question
In Ruby, we use comparison operators to compare two values and find the resulting boolean value (true or false). For example,
# Less than operator
puts 4 < 5
# Output: true
In the above example, we used the < operator to find the boolean value for the condition 4 < 5.
On the other hand, we use logical operators to perform logical operations on boolean expressions. For example,
# Logical NOT
puts !(4 < 5)
# Output: false
Here, the expression 4 < 5 gives us the boolean value true. The ! operator then acts on this boolean value and inverts it to false.