# Logical Operators

Learn about logical operators and how we use them in Ruby.

We'll cover the following

Logical operators are also, maybe more commonly, called boolean operators.

## Boolean logic and its origin

The term “boolean” originates from the book The Mathematical Analysis of Logic, written by George Boole in $1847$. Boolean logic has been fundamental in the development of computers and programming because at their core, computers are all about processing whether or not there is a current flow: on vs. off (true vs. false).

## Types of boolean operators

Feel free to look it up on your own time, but for now, we can simply focus on the three fundamental boolean operators and what they do: and, or, and not.

### The and operator

The and operator always appears between two values (operands), and it returns true if both values are true. So, only the expression true and true is true. All the following expressions, true and false, false and true, and false and false, evaluate to false.

If we think about this in the context of English sentences, then this will make a lot of sense. That is, I’ll have tomato soup at the restaurant if it’s vegan and they still have some.

### The or operator

The or operator, on the other hand, returns true if at least one of the values is true. So, it’s only false if both values are false.

That’s why it’s logically correct to answer the question, “Would you like tea or coffee for breakfast?” with “Yes, please,” if you’d like either tea, or coffee, or both. We’d only say no if we’d like orange juice instead.

### The not operator

The not operator, unlike the and and or operators, operates on only one operand. The not operator simply returns the negated, opposite value. For example, not true returns false, and not false returns true. Therefore, the following lines of code are the same:

Create a free account to access the full course.