====== 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:
* suma ''+''
* resta ''-''
* mutiplicación ''*''
* división: ''/''
* resto de división (módulo): ''%''
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.
* El operador principal es ''='' -> Quiere decir que el valor que hay a la derecha se guardará en la variable de la izquierda
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:
^Operador^Utilización^Operación realizada^
|+= |variable1 += variable2 | variable1 = variable1 + variable2|
|-= | variable1 -= variable2|variable1 = variable1 - variable2 |
|*= | variable1 *= variable2|variable1 = variable1 * variable2 |
|/= | variable1 /= variable2|variable1 = variable1 / variable2 |
|%= | variable1 %= variable2|variable1 = 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:
* '' ++ '' : incrementa el valor en 1
* ''--'' : decrementa el valor en 1
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''
* ''=='' : iguales
* ''!='' : distintos
* ''>'' : mayor que
* ''>='' : mayor o igual que
* ''<'' : menor que
* ''<='' : menor o igual que
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:
* ''&&'' : //true// solo si las dos expresiones son //true//; //false// en cualquier otro caso
* ''||'' : //false// solo si las dos expresiones son //false//; //true// en cualquier otro caso
* ''!'' : invierte el valor booleano de la expresión
^ expresionA^ expresionB^expresionA && expresionB^
|false| false|false|
|false| true|false|
|true| false|false|
|true| true|true|
^ expresionA^ expresionB^expresionA || expresionB^
|false| false|false|
|false| true|true|
|true| false|true|
|true| true|true|
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.
* expresionBooleana ? valor1 : valor2;
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" );
* Si la expresión booleana ''num2 > num1'' se evalua como ''true'', se coje el primer valor, y si es ''false'', se coje el segundo.
----
(c) {{date> %Y}} Fernando Valdeón