Operadores y expresiones en Java
Aritméticos, relacionales, lógicos, asignación y el operador ternario, con ejemplos que puedes probar al momento.
Un operador combina uno o varios valores (los operandos) para producir un resultado. En Java se agrupan en cinco familias: aritméticos, relacionales, lógicos, de asignación y de bits. Aquí verás las cuatro primeras — las que usarás el 99 % del tiempo — con laboratorios para experimentar.
Operadores aritméticos
Suma +, resta -, multiplicación *, división / y
resto o módulo %. Ojo: si los dos operandos son enteros, la división
/ es entera (descarta los decimales).
Prueba: 17 / 5 con tipo int da 3;
con double da 3.4. Y 17 % 5 da 2 (lo que sobra).
| Expresión | Resultado | Por qué |
|---|---|---|
7 + 3 | 10 | Suma normal. |
7 / 2 | 3 | int / int = división entera. |
7 / 2.0 | 3.5 | Si un operando es double, el resultado es double. |
7 % 2 | 1 | Resto de dividir 7 entre 2. |
-7 % 3 | -1 | El signo del resto sigue al dividendo. |
"Java" + 8 | "Java8" | Con String, + concatena. |
Incremento y decremento: ++ y --
x++ (postfijo) usa el valor y luego suma 1. ++x (prefijo) suma 1
y luego usa el valor. Da igual en una línea suelta, pero cambia todo dentro de una expresión.
Operadores relacionales
Comparan dos valores y devuelven un boolean: ==, !=,
>, <, >=, <=.
Para comparar textos usa .equals(), no ==.
Operadores lógicos y cortocircuito
&& (Y), || (O) y ! (NO). Java es
perezoso: en a && b, si a es false ya no
evalúa b (y en a || b, si a es true tampoco). Eso se
llama cortocircuito y sirve para evitar errores: x != null && x.length() > 0.
El operador ternario ? :
condición ? valorSiTrue : valorSiFalse — un if/else que
devuelve un valor. Perfecto para asignaciones cortas.
int edad = 20;
String tipo = (edad >= 18) ? "mayor de edad" : "menor de edad";
System.out.println(tipo);
Precedencia: quién se evalúa primero
Java resuelve las expresiones en orden: primero (), luego * / %, luego
+ -, después las comparaciones y por último los operadores lógicos. Elige una expresión y
míralo paso a paso.
Comprueba lo aprendido
int r = 7 / 2; en Java?int x = 5; int y = x++; — ¿qué valen x e y?false || true?