I hope that you are getting things and practicing well. You can always ask your doubts ( even tiniest one ) to us in the discussion section.
In this chapter, you will learn about booleans.
Like,
1, 2, 3, 4, etc are integers,
1.2, 3.2,332.23, etc are floats,
Boolean is something which can either be true or false.
a = true
b = false
puts a
false
Let's do something more. We already know that x = 10 means that x is 10. In the next example, we will use x == 10. == is a comparison operator. It is used for comparison. See one example after which I will explain further.
a = 10
puts a == 10
puts a == 5
false
a = 10 : This means that a is 10.
puts a == 10 : In this line, a == 10 will check whether a is 10 or not. If a is 10, then it will be true, else it will be false.
This is the reason why in the third line, i.e. puts a == 5, false got printed (since the value of a is not equal to 5).
a = 2
b = 3
puts a == b
Here, the compiler checked whether the value of a is equal to b or not. Since both are not equal, so a == b gave us false.

AND, OR and NOT
In this section, we will learn about three operators- AND, OR and NOT. To understand these, first see this table:
Exp1 | Operator | Exp2 | Boolean |
---|---|---|---|
True | AND | True | True |
True | AND | False | False |
False | AND | False | False |
True | OR | True | True |
True | OR | False | True |
False | OR | False | False |
So, if we use AND with any two operands and if both of them are true, then the result will be true. Otherwise, it will be false
If we use OR and if atleast one of the two operands is true, then the result will be true. The result will be false if both the operands are false.
AND can be understood as both ( first and second both )
OR can be understood as either ( first or second any ). See the next line to understand it more clearly.
True OR False -> As OR is used, either of the two is true -> True
True AND False -> As AND is used, both are not true -> False
Try to understand this more or just remember the chart.
In Ruby,
AND is &&
OR is ||
NOT is !.
x = 10
y = 20
puts x == 10 && y == 20
puts x == 3 || y == 20
puts x == 3 && y == 20
puts x == 3 || y == 2
true
false
false
Here, the value of x is 10 and y is 20. So, x==10 is true and also y == 20 is true. So, x == 10 && y == 20 is also true as both the operands are true ( && (AND) is used ).
In the next line, x == 3 is false but y == 20 is true. So, x == 3 || y == 20 is true because atleast one operand is true ( || (OR) is used ).
In the next line, x == 3 is false and y == 20 is true. So, x == 3 && y == 2 is false because both operands are not true ( && (AND) is used ). (For the expression in an and to be true, both operands must be true).
In the next line, x == 3 is false and y == 2 is also false. So, x == 3 || y == 2 is false because none of the operands is true ( || (OR) is used ). (For the expression in a or to be true, any operands must be true).
NOT
NOT -> You can understand 'NOT' by thinking that it will do the opposite. This can be understood as described below.
not false is true
not true is false
Yeah! It is simple.
E.g.-
! (true || false) -> false
How?
( true || false ) is true because || (OR) is used and at least one of the operands is true, then ( !(true) ) is false.
x = 10
y = 20
puts !(x == 10 && y == 20)
puts !(x == 3 || y == 20)
false
This is the same example as the previous one. We just used ! here and saw the answers got reversed. Earlier those were true but now those are false.
Some operators
First have a look at the following operators:
Operator | Description | Example |
---|---|---|
!= | Not equal to | (5 != 2) is True, (5 != 5) is False |
> | Greater than | (5 > 5) is False |
< | Less than | (5 < 5) is False |
>= | Greater than or equal to | (2 >= 2) is True |
<= | Less than or equal to | (5 <= 2) is false |
!= is not equal to operator. It gives true if both the operands are not equal, else it gives false.
> is greater than or equal to operator. It gives true if the first operand is greater than the second operand.
>= is greater than or equal to operator. It gives true if the first operand is greater than or equal to the second operand.
Similarly, < and <= are less than and less than or equal to operators respectively.
You will learn more about operators in the next chapter.
x = 10
y = 20
z = 10
puts x > y
puts x < y
puts x >= z
puts x > z
true
true
false
You practice and you get better. It's very simple.
-Phillip Glass