java-operadores-aritmeticos-logicos-relacionales

Operadores en Java: aritméticos, lógicos y relacionales

  • 4 min

Un operador es un símbolo que combina, transforma o compara uno o varios valores.

Ya sabemos crear variables e incluso dejar que Java infiera sus tipos. Una variable por sí sola es solo un dato guardado en un cajón; la programación consiste en hacer cosas con esos datos.

Para eso utilizamos los operadores.

Operadores aritméticos

Son los de toda la vida. Sirven para hacer matemáticas básicas.

OperadorDescripciónEjemplo (a=10, b=3)
+Sumaa + b -> 13
-Restaa - b -> 7
*Multiplicacióna * b -> 30
/Divisióna / b -> 3 (¡Ojo aquí!)
%Módulo (Resto)a % b -> 1

La trampa de la división entera

Fíjate en el ejemplo de la tabla: 10 / 3 da 3, no 3.3333.

En Java, si divides dos enteros, el resultado es un entero. Se truncan los decimales. Da igual si guardas el resultado en un double.

int a = 5;
int b = 2;
double resultado = a / b;

System.out.println(resultado); // Imprime 2.0 (¡Ups!)
Copied!

Para obtener decimales, al menos uno de los operandos debe ser decimal (float o double).

double resultado = (double) a / b; // Casting explícito
// O el truco rápido:
double resultado2 = a / 2.0;       // Al dividir por un literal double, el resultado es double
Copied!

Incremento y decremento (++, --)

Muy usados en bucles. Aumentan o disminuyen la variable en 1.

  • a++ (Post-incremento): Usa el valor y luego suma.
  • ++a (Pre-incremento): Suma y luego usa el valor.

Operadores relacionales

Sirven para comparar dos valores. El resultado de estas operaciones siempre es un boolean (true o false).

OperadorSignificadoEjemplo
==Igualdad5 == 5 -> true
!=Desigualdad (Distinto)5 != 3 -> true
>Mayor que5 > 10 -> false
<Menor que5 < 10 -> true
>=Mayor o igual que5 >= 5 -> true
<=Menor o igual que4 <= 5 -> true

¡Peligro con Objetos! El operador == compara valores en primitivos. En objetos (como String), comprueba si ambas referencias apuntan al mismo objeto. Para comparar el contenido de un texto, usa .equals() en lugar de ==. Lo veremos a fondo en el tema de strings.

Operadores lógicos

Permiten combinar varias condiciones booleanas. Son la base de la toma de decisiones compleja.

OperadorNombreDescripción
&&AND (Y)Devuelve true si ambos son verdaderos.
``
!NOT (No)Invierte el valor (!true es false).

El “cortocircuito” (short-circuit evaluation)

Esto es una característica técnica muy importante de Java (y C++).

  • En un AND (&&): Si la primera condición es false, Java NO evalúa la segunda, porque ya sabe que el resultado total será falso.
  • En un OR (||): Si la primera condición es true, Java NO evalúa la segunda, porque ya sabe que el resultado total será verdadero.

Esto ayuda a escribir código seguro y evitar errores:

// Imagina que 'usuario' es null.
// Si no existiera el cortocircuito, usuario.esAdmin() lanzaría un error.
if (usuario != null && usuario.esAdmin()) {
    // Entramos aquí de forma segura
}
Copied!

El operador ternario (? :)

Es el único operador que toma tres operandos. Es básicamente un if-else condensado en una sola línea.

Sintaxis: condición ? valor_si_verdadero : valor_si_falso

int edad = 18;
String estado = (edad >= 18) ? "Mayor de edad" : "Menor de edad";
Copied!

Úsalo con moderación. Es genial para asignaciones simples, pero si anidas varios ternarios (? : ? :), el código se vuelve ilegible.