Lets say I have the following condition:
if ( myList == null || myList.isEmpty() || xomeX == someY )
What is the order of the evaluation of these conditions? Left or right, right to left or random each time?
If the first one passes, then the others are ignored?
It should be always be left to right except the assignment operator =
. You are using short circuit OR
operator , hence if the first condition is true
, rest of them won't be evaluated.
The conditional-or operator is syntactically left-associative (it groups left-to-right).
At run time, the left-hand operand expression is evaluated first; if the result has type Boolean, it is subjected to unboxing conversion (§5.1.8).
If the resulting value is true, the value of the conditional-or expression is true and the right-hand operand expression is not evaluated.