We have the ability to expand our boolean expressions by using multiple conditional operators in a single expression.
For example:
boolean foo = true && !(false || !true)
How does an expression like this get evaluated by the compiler? The order of evaluation when it comes to conditional operators is as follows:
- Conditions placed in parentheses -
()
- NOT -
!
- AND -
&&
- OR -
||
Using this information, let’s dissect the expression above to find the value of foo
:
true && !(false || !true)
First, we’ll evaluate (false || !true
) because it is enclosed within parentheses. Following the order of evaluation, we will evaluate !true
, which equals false
:
true && !(false || false)
Then, we’ll evaluate (false || false)
which equals false
. Now our expression looks like this:
true && !false
Next, we’ll evaluate !false
because it uses the NOT operator. This expression equals true
making our expression the following:
true && true
true && true
evaluates to true
; therefore, the value of foo
is true
.
Instructions
Take a look at the three expressions in Operators.java.
Using your understanding of the order of execution, find out whether the value of each expression is true
or false
.
When you’re ready, uncomment the print statements to find out if you are right.