Logical Operators

Code Bar
`&&` AND
`||` OR
`!` NOT

Logical operators are operators that form compound Boolean expressions that return a Boolean result. Essentially, the AND/OR operations are put in between two existing Boolean expressions and determine a new Boolean result.

The three main logical operators are shown above in the Code Bar. The meanings of these operations are:

• && returns true if both Boolean expressions are true

• || returns true if one of the Boolean expressions are true

• ! is put in front of a Boolean to reverse its value

Truth tables are tables that represent the outcome of the operations. The truth tables for the AND/OR operations are:  These logical operators have a special syntax, which is shown below:

``````true && false 		-> false

false || true 		-> true

!false 			-> true

!true 			-> false
``````

Logical operators are most commonly used in conjunction with relational operators, which were described last lesson (Relational Operators). Here is an example:

``````(4 == 5) || (7 >= 3)
``````

Since (4 == 5) is false, and (7 >= 3) is true, this statement can be further broken down into the following:

``````false || true		-> true
``````

Looking at the truth tables, we can see that the above expression evaluates to true. Here are some more examples:

``````(5 > 4) && (6 == 6) 	-> true

(3 <= 2) || (50 != 50) 	-> false

!(6 > 3) 		-> false
``````

These operators are often used in if statements, for loops, and while loops, which we will get to in lessons 12-15, Loops and Conditionals.

# Lesson Quiz

### What is output to the console in each of the following scenarios?

``````	int i = 5;

boolean x = (i > 5) && ((12 * 2) != 24);

System.out.println(x);
``````
a. True
b. False
``````	System.out.println(!((5000 / 10) > 700));
``````
a. True
b. False
``````	double y = 3.65;

System.out.println(((y * 5) < 15) || true);
``````
a. True
b. False

Written by Chris Elliott

Notice any mistakes? Please email us at [email protected] so that we can fix any inaccuracies.