Sometimes we want to use logic more complicated than just “less than” or
“equal to”. Imagine a grandmother who will only approve you dating her
grandchild if you are older than 25 *and* younger than 40 *and* either
rich or really good looking. If that grandmother was a programmer and
could convince applicants to answer honestly, her program might look a
bit like this:

So we can see that for complicated Boolean expressions you can use
parentheses to group things, and you use the symbols `&&`

to mean “AND”
and the symbols `||`

to mean “OR”.

I know what you are thinking: using `&`

(an “ampersand” or “and sign”)
to mean “AND” makes a little sense, but why two of them? And whose idea
was it to use `||`

(“pipe pipe”) to mean “OR”?!?

Fortunately for you, you don’t need to know any of that. You just need to remember what to type and get it right.

This next little bit is going to be a little bit weird, because I’m going
to show you the “truth tables” for AND and OR, and you’ll have to think of
“AND” as an *operation* that is being performed on two values instead of
a conjunction.

Here is the truth table for AND:

Inputs | Output | |
---|---|---|

A | B | A `&&` B |

true | true | true |

true | false | false |

false | true | false |

false | false | false |

You read the tables this way: let’s pretend that our shallow grandmother has decided that she will only go on a cruise if it is cheap AND the alcohol is included in the price. So we will pretend that statement A is “the cruise is cheap” and statement B is “the alcohol is included”. Each row in the table is a possible cruise line.

Row 1 is a cruise where both statements are true. Will grandmother be excited about cruise #1? Yes! “Cruise is cheap” is true and “alcohol is included” is true, so “grandmother will go” (A && B) is also true.

Cruise #2 is cheap, but the alcohol is *not* included (statement B is false).
So grandmother isn’t interested: (A && B) is false when A is true and B
is false.

Clear? Now here is the truth table for OR:

Inputs | Output | |
---|---|---|

A | B | A `||` B |

true | true | true |

true | false | true |

false | true | true |

false | false | false |

Let’s say that grandmother will buy a certain used car if it is really cool-looking OR if it gets great gas mileage. Statement A is “car is cool looking”, B is “good miles per gallon” and the result, A OR B, determines if it is a car grandmother would want.

Car #1 is awesome-looking and it also goes a long way on a tank of gas. Is
grandmother interested? Heck, yes! We can say that the value `true`

ORed
with the value `true`

gives a result of `true`

.

In fact, the only car grandmother won’t like is when both are false. An expression involving OR is only false when BOTH of its components are false.

(There is no video for this Study Drill yet.)

“Learn Java the Hard Way” is ©2013–2016 Graham Mitchell