Java Reference
In-Depth Information
15.23. Conditional-And Operator &&
The conditional-and operator && is like & 15.22.2 ) , but evaluates its right-hand operand
only if the value of its left-hand operand is true .
ConditionalAndExpression:
InclusiveOrExpression
ConditionalAndExpression && InclusiveOrExpression
The conditional-and operator is syntactically left-associative (it groups left-to-right).
The conditional-and operator is fully associative with respect to both side effects and result
value. That is, for any expressions a , b , and c , evaluation of the expression (( a ) && ( b )) &&
( c ) produces the same result, with the same side effects occurring in the same order, as eval-
uation of the expression ( a ) && (( b ) && ( c )) .
Each operand of the conditional-and operator must be of type boolean or Boolean , or a
compile-time error occurs.
The type of a conditional-and expression is always boolean .
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 false , the value of the conditional-and expression is false and the
right-hand operand expression is not evaluated.
If the value of the left-hand operand is true , then the right-hand expression is evaluated; if
the result has type Boolean , it is subjected to unboxing conversion (§ 5.1.8 ). The resulting
value becomes the value of the conditional-and expression.
Thus, && computes the same result as & on boolean operands. It differs only in that the right-
hand operand expression is evaluated conditionally rather than always.
15.24. Conditional-Or Operator ||
The conditional-or operator || operator is like | 15.22.2 ) , but evaluates its right-hand oper-
and only if the value of its left-hand operand is false .
ConditionalOrExpression:
ConditionalAndExpression
ConditionalOrExpression || ConditionalAndExpression
Search WWH ::




Custom Search