Java: Diferencia entre Operadores Condicionales Dobles y Simples al evaluar expresiones
En algún momento al programar, es necesario evaluar dos o más variables a la vez para tomar una decisión en el flujo de ejecución de nuestro programa. Java dispone de un conjunto de operadores que podemos utilizar para realizar una o varias operaciones con nuestras variables y obtener así el resultado deseado.
Operadores Condicionales
No profundizaré en el tema de los operadores en Java ya que no es el objetivo de este artículo. Basta mencionar que un operador condicional sirve para evaluar dos o más expresiones booleanas a la vez, lo que permite cambiar el flujo de un programa dependiendo si se cumplen ciertas condiciones o no.
En Java, el operador AND
se simboliza con el signo &
(mejor conocido por su nombre en inglés como ampersand) y es utilizado para evaluar dos expresiones en las que, si ambas son verdaderas, retornarán un valor verdadero. Por otro lado, el operador OR
se simboliza con la barra vertical |
o pipe y se utiliza para evaluar dos expresiones, si al menos una de ellas es verdadera, regresará un valor verdadero.
Puedes consultar la documentación de Java para el uso de operadores condicionales desde el siguiente enlace: Java Documentation.
Operadores Condicionales Simples
Cuando se utilizan los operadores condicionales simples AND
y OR
(signos &
y |
respectivamente) los operandos siempre se evaluarán.
En el siguiente ejemplo, se declaran e inicializan dos variables de tipo entero llamadas credito
y edad
, para posteriormente ser evaluadas en la condición if
(el código del proyecto lo podrás encontrar al final del artículo):
Al llegar al bloque if
se evalúan ambos operandos credito
y edad
, sin importar si la primer condición se cumple o no. En este caso, al evaluar credito > 1000
, el resultado es false
y continúa con el siguiente operando a evaluar edad >= 18
, por lo que ambas condiciones son evaluadas sin importar si se cumplen o no.
Operadores Condicionales Dobles
Al utilizar los operadores condicionales dobles &&
y ||
los operandos se evalúan en “corto circuito”, es decir, sólo se evalúan hasta que la condición de un operador sea evaluada como false
. Dicho de otro modo, el siguiente operando se evalúa sólo si es necesario.
Retomando el código del ejemplo anterior, al llegar al bloque if
se evalúa únicamente el primer operando credito > 1000
, si la condición devuelve true
, continúa con el siguiente operando edad >= 18
, de lo contrario finaliza la evaluación:
Utilizando el operador condicional doble en el ejemplo, al llegar al bloque if
solamente se evalúa el primer operando credito
e ignora la evaluación del segundo, ya que la condición credito > 1000
regresa un valor false
. En otras palabras, solo la primera condición es evaluada y al ser ésta falsa no se evalúa la segunda condición, se produce lo que se llama “corto circuito”.
Conclusión
En la mayoría de los casos, los operadores condicionales en Java se utilizan en su forma doble para optimizar el programa, pero no se descarta utilizar su forma simple en algunas situaciones especiales, como por ejemplo para evaluar un conjunto, grupo o serie de variables de forma sucesiva y asegurar su cumplimiento.
Código del proyecto
Sígueme en mis redes:
¿Buscas una clave SAT para tu factura? Prueba mi app: