Quién me puede explicar esta operación de booleanas?

Iniciado por anonimo12121, 27 Septiembre 2012, 00:58 AM

0 Miembros y 1 Visitante están viendo este tema.

anonimo12121

Hola.
Quién me puede explicar esta operación de booleanas?
Código (cpp) [Seleccionar]
bool Contains(const b2AABB& aabb) const
{
bool result = true;
result = result && lowerBound.x <= aabb.lowerBound.x;
result = result && lowerBound.y <= aabb.lowerBound.y;
result = result && aabb.upperBound.x <= upperBound.x;
result = result && aabb.upperBound.y <= upperBound.y;
return result;
}
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

rir3760

Es una forma (en mi opinión enredada) de verificar los cuatro limites. Su base es utilizar el hecho que el operador "&&" es un operador de corto circuito, lo que ello significa es:

* Si el operando a la izquierda de "&&" es falso ("false" o bien el valor cero) ese es el resultado de la expresión y el operando de la derecha no se evalúa.

* Si el operando a la izquierda es verdadero el resultado del operador "&&" esta dado por la expresión a la derecha. En el caso de tu función ello se garantiza con la inicialización:
Código (cpp) [Seleccionar]
bool result = true;

Otra forma de verificar los cuatro limites sin el uso de la variable como tampoco asignaciones repetidas (en buen cristiano con el mismo efecto) es:
Código (cpp) [Seleccionar]
bool Contains(const b2AABB& aabb) const
{
   return lowerBound.x <= aabb.lowerBound.x
      && lowerBound.y <= aabb.lowerBound.y
      && aabb.upperBound.x <= upperBound.x
      && aabb.upperBound.y <= upperBound.y;
}


Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

anonimo12121

Un poco liante la verdad. yo prefiero usar un condicional.
Gracias!
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746