# if Statement With Multiple Boolean Expressions

Sometimes we want to have multiple conditions because one is not enough.

##### This `OR` That, This `AND` That¶
• "If I were taller `OR` that shelf was lower, I could reach that can of soup."
• "Could I have 20 ones `OR` a ten and 10 ones `OR` even 2 fives and 10 ones?"
• "You have to wear a shirt `AND` shoes to enter this premise!"
• "If you are older than 5 `AND` younger than 12 then the cost is \$1"

## The Logical OR `||`¶

In JavaScript the logical OR is `||`. That is two vertical bars. That key is in different places depending on the keyboard. Where is it on yours? You use it like this:

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17``` ``````function multipleBooleans1() { // Logical OR const UPPER_BOUNDARY = 10; const LOWER_BOUNDARY = 1; let number; number = 25; if (number > UPPER_BOUNDARY || number < LOWER_BOUNDARY) { document.write("The number is not between "); document.write(LOWER_BOUNDARY) document.write(" and "); document.write(UPPER_BOUNDARY); document.write("!"); } } ``````
```

multipleBooleans1();

```
##### This is wrong¶
 ```1 2 3 4``` ``````// Wrong! if (number > UPPER_BOUNDARY || < LOWER_BOUNDARY) { //<-- Wrong, missing variable name! } ``````
##### This is correct¶
 ```1 2 3 4``` ``````// Right! if (number > UPPER_BOUNDARY || number < LOWER_BOUNDARY) { //<-- You always have to have // a complete boolean expression } // on each side of the || ``````
##### Either one of the expressions can be true and the whole thing is true!¶ ## The Logical AND `&&`¶

In JavaScript the logical AND is `&&`, two ampersands. Here's how we use it.

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18``` ``````/function multipleBooleans2() { // Logical AND const BONUS_BOUNDARY = 25; const BONUS_CODE = 5; let numberOne; let code; numberOne = 30; code = 5; if (numberOne > BONUS_BOUNDARY && code === BONUS_CODE) { document.write("Bonus time!"); } else { document.write("No bonus this year."); } } ``````
```

multipleBooleans2();

```
##### Both of the boolean expression have to be true. If either one is false then the whole thing is false.¶ ##### Here's a logical AND example¶
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24``` ``````function multipleBooleans3() { // Logical AND example const UPPER_LIMIT = 10; const LOWER_LIMIT = 0; let countEntry; let count; countEntry = prompt("Enter a number between 1 and 10"); if (isNumeric(countEntry)) { count = Number(countEntry); } else { alert("Entered value for number is not numeric."); } if (count > LOWER_LIMIT && count <= UPPER_LIMIT) { alert("The number is in the correct range"); } else { alert("The number is NOT in the correct range"); } return; } ``````

** Click me to run `multipleBooleans3()` **

Take note of the `return` statement in this program. This will stop the program from finishing the function. We will learn more about this in upcoming units. For now, just know that it will stop this function as soon as the `return` statement is reached.

##### Here's an `if/else`¶
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25``` ``````function multipleBooleans4() { // Logical AND example with if/else const SIZE_MINIMUM = 0; const VALID_CODE = "B"; let sizeEntry; let size; let code; sizeEntry = prompt("Enter a size in feet"); code = prompt("Enter a code: A, B, or C"); if (isNumeric(sizeEntry)) { size = Number(sizeEntry); } else { alert("Entered value for size is not numeric."); return; } if (size > SIZE_MINIMUM && code === VALID_CODE) { alert("That is just right!"); } else { alert("That's not it, please try again."); } } ``````

** Click me to run `multipleBooleans4()` **

Demo