Una guía para principiantes sobre operadores lógicos y relacionales en Java

Los operadores son símbolos que se utilizan para realizar operaciones sobre valores, variables o declaraciones. Las expresiones sobre las que realizan estas acciones se denominan operandos. Las operaciones devuelven un resultado booleano (verdadero o falso) para los operadores lógicos, de igualdad y relacionales.

El número de operandos que toma un operador determina su tipo. Un operador que toma un operando se llama "unario". Un operador que toma dos operandos se llama "binario".

Siga leyendo para aprender cómo puede utilizar operadores lógicos y relacionales en Java. Mejor aún, la mayoría de los lenguajes de programación utilizan los mismos operadores, por lo que puede aplicar este conocimiento en otros lugares.

Operadores logicos

Se utilizan para construir declaraciones lógicas durante la programación. Hay seis operadores lógicos en Java. La siguiente tabla los resume.

Operador Nombre Tipo
| OR lógico booleano Binario
Y Y lógico booleano Binario
^ OR exclusivo lógico booleano Binario
|| O condicional Binario
&& Y condicional Binario
! NO lógico Unario

Si desea comprobar si una o ambas condiciones son verdaderas, utilice este operador. Una condición es una expresión que puede ser verdadera o falsa.

O lógico inclusivo booleano (|)

El OR lógico comprueba si ambos operandos son verdaderos antes de evaluar la expresión.

 if ( dob < 2005 | height <= 5){
money++;
}

El ejemplo anterior le dará a alguien más dinero si su fecha de nacimiento (dob) es menor que 2005 o si su altura es menor o igual a 5 pies.

Y lógico booleano (&)

Este operador se usa para verificar si ambas condiciones son verdaderas antes de tomar una determinada ruta de ejecución en el programa. Primero verifica si ambas condiciones son verdaderas antes de evaluar la expresión completa.

Relacionado Cómo validar cadenas usando métodos booleanos en Python

OR exclusivo lógico booleano (^)

Si desea verificar si una de las condiciones es verdadera, pero no ambas, entonces este es el operador que debe usar. La siguiente tabla de verdad resume los resultados que verá cuando la use.

expresión1 expresión2 expresión1 ^ expresión2
falso falso falso
falso cierto cierto
cierto falso cierto
cierto cierto falso

Y booleano condicional (&&)

Este operador es similar al AND lógico. La diferencia es que primero verifica si la condición de la izquierda es verdadera antes de continuar para verificar la de la derecha.

Si se encuentra que la parte izquierda es falsa, la ejecución se detiene inmediatamente. De lo contrario, continuará la evaluación de la pieza correcta. Esta característica se conoce como evaluación de cortocircuito.

Consulte la tabla de verdad a continuación para fundamentar su comprensión de este operador.

expresión1 expresión2 expresión1 && expresión2
falso falso falso
falso cierto falso
cierto falso falso
cierto cierto cierto

OR condicional (||)

Si alguna de las condiciones es falsa, la ejecución saltará a la siguiente parte del programa. En otras palabras, ambas condiciones deben ser verdaderas.

Este operador es similar al OR lógico. También comprueba si una o ambas condiciones son verdaderas antes de ejecutar cierto código.

Similar al Y condicional, el O lógico también usa la evaluación de cortocircuito. Primero verifica si el operando de la izquierda es verdadero antes de evaluar el de la derecha.

Relacionado: ¿Qué es un constructor en Java y cómo se usa?

Si se determina que la condición de la izquierda es verdadera, no es necesario marcar la de la derecha. De lo contrario, continuará la evaluación a la derecha.

NO lógico (!)

Este operador se utiliza para negar una condición. Simplemente invierte el significado de lo que está operando.

 if(!(x>5)){
// statements
}

La declaración anterior significa que si "x es mayor que 5" NO es verdadera, entonces ejecute las declaraciones dentro del if .

Observe el uso de corchetes con la expresión (x> 5). Si no incluye estos corchetes mientras escribe su programa, obtendrá un error en tiempo de compilación. ¡La razón es porque ! es un operador unario que actúa sobre una condición. Sin los corchetes, el compilador lo interpretaría como el operador que actúa sobre x, no x> 5.

La inclusión de corchetes no es solo para permitir que el compilador interprete correctamente una expresión. También se pueden utilizar como una forma para que el programador comprenda mejor expresiones más complejas. Mira el ejemplo de abajo:

 age >= 7 && height < 5

Algunas personas pueden tener dificultades para seguir la lógica. Por lo tanto, algunos programadores prefieren agregar paréntesis redundantes por razones de legibilidad:

 (age >= 7) && (height < 5)

Operadores relacionales

Estos operadores se utilizan para comparar relaciones simples entre operandos.

Operador Nombre
> Mas grande que
< Menos que
> = Mayor qué o igual a
<= Menos que o igual a

Los operadores relacionales son bastante fáciles de entender porque todos tienen el mismo significado que los operadores algebraicos habituales con los que ya está familiarizado. Es decir, > y < tienen el mismo significado que ya conoce que se da en la tabla anterior.

 if( x <= 7 ){
x++;
}

La declaración if anterior verifica si x es menor o igual que 7. Si es verdadera, entonces las declaraciones dentro de los corchetes se ejecutan; de lo contrario, no lo hacen.

Ahora sería un buen momento para mencionar a los operadores de igualdad. Solo hay dos de ellos (igual a, == y! =, No igual a). Como sugiere su nombre, se utilizan para probar la igualdad entre dos operandos.

Relacionado Cómo crear y realizar operaciones en matrices en Java

El operador de igualdad (==) no debe confundirse con el operador de asignación (=). A los programadores principiantes les gusta mezclar los dos. Esto es razonable ya que en álgebra el símbolo (=) se usa para expresar igualdad. Sin embargo, eso no está bien en programación.

El operador de asignación (=) asigna un valor a una variable mientras que el operador de igualdad (==) prueba la igualdad. Vea el ejemplo a continuación para comprender la diferencia:

 if(x=5){
// statements
}

El código anterior siempre se ejecutará independientemente de si x es realmente igual a 5. Mientras tanto, el código siguiente solo se ejecutará si x es igual a 5. Por lo tanto, es importante no mezclar los dos.

 if(x==5){
// statements
}

Los dos operadores de igualdad mencionados tienen el mismo nivel de precedencia, aunque menor que el de los operadores relacionales.

Los operadores relacionales también tienen el mismo nivel de precedencia. La ejecución de estos operadores comienza de izquierda a derecha.

Consideraciones adicionales sobre los operadores de Java

Debe haber observado que hay espacios en blanco entre algunos operadores y sus operandos en algunos de los ejemplos, mientras que en otros no los hay.

La ausencia / presencia de ese espacio no debería preocuparte. El compilador lo ignorará. Por tanto, las siguientes expresiones significan lo mismo:

 Y>=7 // no whitespace
Y >= 7 // with whitespace

Los operadores relacionales se utilizan generalmente para expresar condiciones simples. Para combinar condiciones simples en condiciones más complejas, deberá utilizar operadores lógicos. Los operadores lógicos pueden probar múltiples condiciones, a diferencia de los operadores relacionales que solo prueban una condición.

También es importante tener en cuenta que los operadores lógicos (|, &, ^) pueden ser operadores bit a bit cuando tienen operandos integrales. Cuando se utilizan como operadores bit a bit, operarán en los bits de sus operandos.

Con este conocimiento de los operadores, ahora debería estar preparándose para aprender las clases de Java.