ed-b1 instalación y uso de entornos
UT 4: el lenguaje java
5.Operadores
eugeniaperez.es



5. Operadores

eugeniaperez.es
UT 4: el lenguaje java
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores aritméticos

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores
operadores aritméticos
Obviamente podemos complicar las operaciones aritméticas tanto como haga falta, siendo recomendable utilizar paréntesis para agrupar las operaciones y hacer más clara la interpretación de cálculos elaborados:

eugeniaperez.es
(((4 / 1) * number ) + a ) % (1000 * b)
4 / 1 * number + a % 1000 * b
Sin paréntesis, es
necesario tener en cuanto la precedencia
de operadores.
UT 4: EL LENGUAJE JAVA

5. Operadores
precedencia de operadores

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores
reglas de promoción de primitivos
Cuando tenemos valores de determinados tipos con los que se hacen operaciones, el tipo puede se debe promocionar para que todos acaben con el mismo tipo:
1.Si son dos tipos java distintos (long y short por ejemplo), los valores se convierten al tipo más grande:

eugeniaperez.es
453234213L + 56; // 56 convierte en long
UT 4: EL LENGUAJE JAVA

5. Operadores
reglas de promoción de primitivos
2.Si uno de los valores es un entero y otro con decimales, el entero se convierte o promociona a valor con decimales.
3. Las primitivas enteras pequeñas: byte, short y char se promocionan automáticamente a int en cuanto se hace una operación con ellas.

eugeniaperez.es
42 + 15.5 // 42 pasa a ser 42.0f
UT 4: EL LENGUAJE JAVA

5. Operadores
reglas de promoción de primitivos
4.Una vez se promocionan todos los valores, el resultado pasa a ser el del tipo promocionado:
Por eso hay que tener cuidado ya que esto no compilaría:

eugeniaperez.es
3L + 4 + 10 // 17L
int a = 5;
long b = 5;
a = a + b; // ERROR DE COMPILACIÓN
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores de asignación
En ocasiones se lleva a cabo una operación aritmética con una variable y el resultado se almacena en la misma variable:
Java nos permite abreviar esa expresión de la siguiente manera:

eugeniaperez.es
number = number + 3;
number += 3;
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores de asignación
Igual que la suma, tenemos un operador abreviado para cada operación aritmética:
- +=
- -=
- *=
- /=
- %=

eugeniaperez.es
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores de asignación
En la NOTA anterior indicábamos que esto daría un error de compilación:
Usando un operador de asignación solventamos el problema, ya que este se encargaría de hacer una conversión o cast de long a int:

eugeniaperez.es
int a = 5;
long b = 5;
a = a + b; // ERROR DE COMPILACIÓN
int a = 5;
long b = 5;
a += b; // OK
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores de comparación
Los operadores de comparación o relational operators nos permiten hacer comparaciones entre literales o variables y su resultado es un booleano: true o false. Por ejemplo:
El valor almacenado en la variable será true.

eugeniaperez.es
boolean isBigger = 5 > 3;
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores de comparación
Operadores disponibles en Java:

eugeniaperez.es

Entre ellos se suelen utilizar operadores booleanos: &, |
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores de comparación
Precauciones:
Es frecuente liarse y utilizar un único símbolo = con el propósito de hacer una comparación. Sintácticamente es correcto pero lo que hace eso es una asignación, no una comparación. Los resultados no son los esperados.

eugeniaperez.es
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores de comparación
Precauciones:
Para las cadenas o String, podemos comparar con == o !=, aunque también con el método toEquals():

eugeniaperez.es
String name = "Eugenia";
boolean isTheSame = name.isEquals(“Eugenia”);
isTheSame = (name == name);
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores de comparación
Precauciones:
También resulta interesante saber que:
Porque el operador == provoca que el 5 sea promocionado a float y por tanto terminan siendo iguales.

eugeniaperez.es
5 == 5.0 // true
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores booleanos
Estos son operadores que nos permiten hacer operaciones con valores booleanos, true/false. Son algo básico en cualquier lenguaje de programación y en Java los tenemos de dos maneras con shortcircuit o sin él.
Esto significa si se evalúa toda la condición o no.

eugeniaperez.es
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores booleanos

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores
operadores booleanos

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores
operadores booleanos con shortcircuit
Si bien ahorran tiempo de procesador mucho ojo al usar estos operadores, ya que al utilizarlos puede que ciertas expresiones queden sin evaluar. Por tanto los resultados no serán los esperados según las condiciones.

eugeniaperez.es
int a = 5;
int b = 0;
boolean result = (a > 6) && (b++ > 0);
(b++ > 0) NO se evalúa, es decir, NO se ejecuta.
Por tanto b++ NO se incrementa.
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores de bits
Son poco frecuentes. Operan a nivel de bit:

eugeniaperez.es

UT 4: EL LENGUAJE JAVA

5. Operadores
operadores de strings
Con Strings podemos llevar a cabo una operación básica: la concatenación, que consiste simplemente en unir un String con otro: +

eugeniaperez.es
String name = “Eugenia “;
String completeName = name + “Pérez” // “Eugenia Pérez”
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores de strings
Al concatenar podemos usar tanto variables como literales. Si concatenamos cadenas con otro tipo de variables se produce una cadena:

eugeniaperez.es
int result = 42;
System.out.println(“El resultado es: “ + result); // “El resultado es: 42”
UT 4: EL LENGUAJE JAVA

5. Operadores
operadores de strings
De hecho una forma simple de convertir cualquier variable en String de forma implícita es concatenando un String vacío:
Sin embargo, ¡cuidado!:

eugeniaperez.es
int result = 42;
String mensaje = result + "";
System.out.println(“El resultado es: “ + result + 6); // “El resultado es: 48”
Se podría utilizar StringBuilder...
UT 4: EL LENGUAJE JAVA

5. Operadores
inmutabilidad de strings
Una vez que se declara un String ya no se puede modificar: ni se puede agrandar, ni empequeñecer.
En todo caso lo que podemos hacer es machacar el String que contiene una variable con un nuevo String:

eugeniaperez.es
String mensaje = “”; // mensaje = “”
mensaje = mensaje + “ más texto”; // mensaje = “ más texto”
mensaje = mensaje + “, y más texto” // mensaje = “ más texto, y más texto”
UT 4: EL LENGUAJE JAVA

5. Operadores
inmutabilidad de strings
Si utilizamos el método de concatenación del propio String NO modificaremos el propio String, pero si podemos guardar su valor en otra variable:

eugeniaperez.es
String mensaje1 = “Say my name”;
String mensaje2;
mensaje2 = mensaje1.concat(“: Heisenberg”);
// mensaje2 = “Say my name: Heisenberg”
// mensaje1 = “Say my name”
UT 4: EL LENGUAJE JAVA

5. Operadores
métodos de strings
Siendo los Strings objetos, disponen de una serie de métodos útiles que conviene conocer. Supongamos que tenemos el siguiente String:
A continuación te pongo los métodos y lo que obtenemos. Recuerda que los Strings son inmutables, por tanto estos métodos devuelven un nuevo String y NO modifican el propio String a los que se aplican.

eugeniaperez.es
String name = “Cuatrovientos”;
UT 4: EL LENGUAJE JAVA

5. Operadores
métodos de strings
eugeniaperez.es
String name = "cuatrovientos";
name.replace("cuatro", "tres");
//No estoy modificando la variable name
System.out.println(name.replace("cuatro", "tres"));
System.out.println(name);
//Para modificarla, tengo que volver a asignarle la operación
name = name.replace("cuatro", "tres");
System.out.println(name);

UT 4: EL LENGUAJE JAVA

5. Operadores
métodos de strings
Estos métodos se pueden encadenar, lo cual resulta muy práctico para aplicar más de un metodo al mismo String en una sola línea:

eugeniaperez.es
String name = ” Cuatrovientos ”;
name.trim().toLowerCase().substring(0,5).equals(“cuatro”) // true
UT 4: EL LENGUAJE JAVA

5. Operadores
operador ternario
También conocido como elvis operator, su formato es el siguiente:
Generalmente se utiliza para asignar un valor un otro a una variable dependiendo de la condición del operador. Por ejemplo:

eugeniaperez.es
int b = 4
int a = 5;
int x = (a > b)? 42 : 0;
condición ? expresión1 : expresión2
x será 42, ya que a>b
UT 4: lenguaje java

5. Operadores
REpasa las clases del proyecto operadores.
realiza las actividades de la pág. 50:
- Ejercicios 1 -8

eugeniaperez.es
5. Operadores
By eugenia_perez
5. Operadores
- 1,386