Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: anonimo12121 en 27 Septiembre 2012, 00:58 am



Título: Quién me puede explicar esta operación de booleanas?
Publicado por: anonimo12121 en 27 Septiembre 2012, 00:58 am
Hola.
Quién me puede explicar esta operación de booleanas?
Código
  1. bool Contains(const b2AABB& aabb) const
  2. {
  3. bool result = true;
  4. result = result && lowerBound.x <= aabb.lowerBound.x;
  5. result = result && lowerBound.y <= aabb.lowerBound.y;
  6. result = result && aabb.upperBound.x <= upperBound.x;
  7. result = result && aabb.upperBound.y <= upperBound.y;
  8. return result;
  9. }


Título: Re: Quién me puede explicar esta operación de booleanas?
Publicado por: rir3760 en 27 Septiembre 2012, 02:22 am
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
  1. 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
  1. bool Contains(const b2AABB& aabb) const
  2. {
  3.   return lowerBound.x <= aabb.lowerBound.x
  4.      && lowerBound.y <= aabb.lowerBound.y
  5.      && aabb.upperBound.x <= upperBound.x
  6.      && aabb.upperBound.y <= upperBound.y;
  7. }

Un saludo


Título: Re: Quién me puede explicar esta operación de booleanas?
Publicado por: anonimo12121 en 27 Septiembre 2012, 10:25 am
Un poco liante la verdad. yo prefiero usar un condicional.
Gracias!