|
En un AND donde encuentra el primer falso ya no chequea más
En un OR, con un sólo verdadero ya alcanza para que sea verdadero
Basicamente
(True) AND (True) AND (True) AND (True) AND (False) = False
(False) AND (True) AND (True) AND (True) AND (True) = False, solo se evalua el primer condicional
(True) OR (True) OR (True) OR (True) OR (False) = True, solo se evalua el primer condicional
Tiene cierto "truco", ya que a pesar de que aca estamos hablando de constantes True/False, muchas veces tenemos funciones que devuelven True o False. Y si bien es un error grave que tengan efectos colaterales, es para tener en cuenta, no se debe asumir que siempre se evaluan todas las condiciones; tambien es para tener en cuenta el orden en que encadenamos condiciones, lo propio es poner lo mas rapido primero y dejar lo pesado para el final
Se puede configurar el compilador para que haga Full Boolean Evaluation
Última edición por AgustinOrtu fecha: 24-02-2016 a las 16:47:15.
|