Ver Mensaje Individual
  #9  
Antiguo 24-02-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 17
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
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.
Responder Con Cita