====== 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