Tabla de Contenidos

Operadores en Java

Los operadores son instrucciones que se usan junto a las variables o los tipos de datos para construir operaciones.

Las normas de estilo aconsejan, separar mediante espacios y paréntesis los operadores y los valores en las operaciones, para mejorar la legibilidad del código.

Paréntesis

Siempre que utilice operadores distintos, aunque sea del mismo tipo, debo separar las operaciones con paréntesis. Así se enténderá claramente qué operación quiero realizar.

int numero = (4 + 5) * (3 / 2)
 
boolean resultado = (3 > 4) && ((numero > 5) || (45 % 2 == 1))

Operadores Aritméticos

Son operadores binarios (requieren 2 valores) y se usan en operaciones entre tipos primitivos numéricos:

int operacion = 3 * 4;
double resultado = operación / 3.15;
 
int resto = 8 % 3; //el resto es 2

Operadores de Asignación

Permiten asignar un valor a una variable.

int numero1 = 45;
int numero2 = numero1 - 10; //numero2 -> 35, numero1 -> 45

Pero existen otros operadores de asignación que además realizan operaciones antes de la asignación:

OperadorUtilizaciónOperación realizada
+= variable1 += variable2 variable1 = variable1 + variable2
-= variable1 -= variable2variable1 = variable1 - variable2
*= variable1 *= variable2variable1 = variable1 * variable2
/= variable1 /= variable2variable1 = variable1 / variable2
%= variable1 %= variable2variable1 = variable1 % variable2
int numero1 = 45;
int numero2 = numero1 - 10;
 
numero2 += 3; //numero2 = 35 + 3;
numero1 -= numero2; //numero1 = numero1 - numero2 -> 7

(IMPORTANTE) Una variable no cambiará nunca su contenido mientras no se realice sobre ella una asignación

Operadores Incrementales

Su funcionamiento es parecido a los operadores de asignación anteriores.

Incrementan o decrementan en una unidad el valor de la variable:

int numero1 = 1;
numero1 ++; //Ahora numero1 vale 2: numero1 = numero1 + 1
 
numero1 = 7;
numero1 --; //Ahora numero1 vale 6: numero1 = numero1 -1

Estos operadores se pueden colocar delante o detás de la variable. Pero hay un punto a tener en cuenta con estos operadores si los usamos en una asignación:

//Primer caso
int numero1 = 1;
int numero2 = numero1 ++; 
 
//Primero se asigna el valor de numero1 a numero2
//Después se realiza el incremento
//Resultado: numero1 -> 2, numero2 -> 1
 
//Segundo caso
numero1 = 1;
numero2 = --numero1; 
 
//Ahora, primero se realiza el decremento sobre numero1
//Después se asigna el valor de numero1 a numero2
//Resultado: numero1 -> 0; numero2 -> 0 

Expresiones booleanas

Una expresión booleana es una operación que da como resultado un valor booleano: true o false.

Los siguientes tipos de operaciones son expresiones booleanas que dan como resultado un valor booleano.

Operadores Comparativos (booleanos)

Se utilizan para crear expresiones booleanas. Al evaluar dicha expresión el resultado es un valor booleano: true o false

int numero1 = 6;
int numero2 = numero1;
 
boolean resultado = 5 > 5; //false
resultado = 5 >= 5; //true
resultado = numero1 == numero2; //true
resultado = numero != (numero2 * 4); //true

Operadores Lógicos (booleanos)

Los operadores lógicos permiten crear una expresión booleana (true/false) a partir de otras expresiones booleanas más pequeñas:

expresionA expresionBexpresionA && expresionB
false falsefalse
false truefalse
true falsefalse
true truetrue
expresionA expresionBexpresionA || expresionB
false falsefalse
false truetrue
true falsetrue
true truetrue
int num1 = 5;
int num2 = 3;
int num3 = -7;
 
boolean resultado = (num1 >  num3) && (num3 > num2) //false
resultado =  (num1 >  num3) || (num3 > num2) //true
 
resultado = true;
resultado = !resultado; //false, invierte el valor

Operador Condicional

Es un operador tomado de C/C++, que permite seleccionar un valor dependiendo de una expresión booleana.

int num1 = 56;
int num2 = -14;
//Puedo almacenar el valor seleccionado en una variable del tipo concreto
String resultado = num2 > num1 ? "num2 es mayor" : "num1 es mayor";
int mayor = num2 > num1 ? num2 : num1;
 
//O mostrar el valor directamente por consola: "num1 es mayor"
System.out.println( num2 > num1 ? "num2 es mayor" : "num1 es mayor" );

© 2024 Fernando Valdeón