Back to Error Prone

ShortCircuitBoolean

docs/bugpattern/ShortCircuitBoolean.md

2.49.0549 B
Original Source

The boolean operators && and || should almost always be used instead of & and |.

If the right hand side is an expression that has side effects or is expensive to compute, && and || will short-circuit but & and | will not, which may be surprising or cause slowness.

If evaluating both operands is necessary for side effects, consider refactoring to make that explicit. For example, prefer this:

java
boolean rhs = hasSideEffects();
if (lhs && rhs) {
  // ...
}

to this:

java
if (lhs & hasSideEffects()) {
  // ...
}