Já que os operadores de curto-circuito são, em alguns casos, mais eficientes do que seus equivalentes comuns, por que Java oferece os operadores AND e OR comuns?
Em alguns casos, você pode querer que os dois operandos de uma operação AND ou OR sejam avaliados devido aos efeitos colaterais produzidos.
Na primeira instrução if, i é incrementada independentemente do sucesso da condição.
Com o operador de curto-circuito, i não é incrementada quando o primeiro operando é falso.
A lição aprendida é que ao esperar que o operando do lado direito de uma operação AND ou OR seja avaliado, deve-se usar versões dessas operações em Java que não sejam de curto-circuito.