1.9 Operadores y expresiones
Operadores Aritméticos¶
Los Operadores Aritméticos permiten realizar operaciones matemáticas:
| Operador | Uso | Operación |
|---|---|---|
| + | A + B | Suma |
| - | A - B | Resta |
| * | A * B | Multiplicación |
| / | A / B | División |
| % | A % B | Módulo o resto de una división entera |
Ejemplo:
Operadores Relacionales¶
Los Operadores Relacionales permiten evaluar (la respuesta es un booleano: sí o no) la igualdad de los operandos:
| Operador | Uso | Operación |
|---|---|---|
| < | A < B | A menor que B |
| > | A > B | A mayor que B |
| <= | A <= B | A menor o igual que B |
| >= | A >= B | A mayor o igual que B |
| != | A != B | A distinto de B |
| == | A == B | A igual a B |
Por ejemplo:
Operadores Lógicos¶
Los Operadores Lógicos permiten realizar operaciones lógicas:
| Operador | Manejo | Operación |
|---|---|---|
| && o & | A && B ó A & B |
A AND B. El resultado será true si ambos operadores son true y false en caso contrario. |
| || o | | A || B ó A | B |
A OR B. El resultado será false si ambos operandos son false y true en caso contrario |
| ! | !A | NOT A. Si el operando es true el resultado es false y si el operando es false el resultado es true. |
| ^ | A ^ B | A XOR B. El resultado será true si un operando es true y el otro false, y false en caso contrario. |
Ejemplo:
Para representar resultados de operadores Lógicos también se pueden usar tablas de verdad a las que conviene acostumbrarse:
| A | B | A && B | A || B | !A |
|---|---|---|---|---|
| false | false | false | false | true |
| true | false | false | true | false |
| false | true | false | true | true |
| true | true | true | true | false |
Operadores Unarios o Unitarios¶
Los Operadores Unarios o Unitarios permiten realizar incrementos y decrementos:
| Operador | Uso | Operación |
|---|---|---|
| ++ | A++ o ++A | Incremento de A |
| -- | A-- o --A | Decremento de A |
En el caso de utilizarlo como prefijo el valor de asignación será el valor del operando más el incremento de la unidad. Y si lo utilizamos como sufijo se asignará el valor del operador y luego se incrementará la unidad sobre el operando.
Operadores de Asignación¶
Los Operadores de Asignación permiten asignar valores:
| Operador | Uso | Operación |
|---|---|---|
| = | A = B | Asignación (como ya hemos visto) |
| += | A += B | Suma y asignación. La operación A+=B equivale a A=A+B |
| -= | A -= B | Resta y asignación. La operación A-=B equivale a A=A-B |
| *= | A *= B | Multiplicación y asignación. La operación A*=B equivale a A=A*B |
| %= | A %= B | Módulo y asignación. La operación A%=B equivale a A=A%B |
| /= | A /= B | División y asignación. La operación A/=B equivale a A=A/B |
Ejemplo:
Prioridad de operadores
Los operadores tienen diferente Prioridad por lo que es interesante utilizar paréntesis para controlar las operaciones sin necesidad de depender de la prioridad de los operadores.
Operadores de desplazamiento¶
Los Operadores de desplazamiento permiten desplazar los bits de los valores:
| Operador | Utilización | Resultado |
|---|---|---|
| << | A << B | Desplazamiento de A a la izquierda en B posiciones. Multiplica por 2 el número B de veces. |
| >> | A >> B | Desplazamiento de A a la derecha en B posiciones, tiene en cuenta el signo. Divide por 2 el número B de veces. |
| >>> | A >>> B | Desplazamiento de A a la derecha en B posiciones, no tiene en cuenta el signo. (simplemente agrega ceros por la izquierda) |
| & | A & B | Operación AND a nivel de bits |
| | | A | B | Operación OR a nivel de bits |
| ^ | A ^ B | Operación XOR a nivel de bits |
| ~ | ~A | Complemento de A a nivel de bits |
Ejemplo:
Operador condicional ?:¶
El operador condicional ?: sirve para evaluar una condición y devolver un resultado en función de si es verdadera o falsa dicha condición. Es el único operador ternario de Java, y como tal, necesita tres operandos para formar una expresión:
- El primer operando se sitúa a la izquierda del símbolo de interrogación, y siempre será una expresión booleana, también llamada condición.
- El siguiente operando se sitúa a la derecha del símbolo de interrogación y antes de los dos puntos, y es el valor que devolverá el operador condicional si la condición es verdadera.
- El último operando, que aparece después de los dos puntos, es la expresión cuyo resultado se devolverá si la condición evaluada es falsa.
Ejemplo, en la expresión:
Se evalúa la condición de si x es mayor que y, en caso afirmativo se devuelve el valor de la variable x, y en caso contrario se devuelve el valor de y.
Ejemplo para calcular qué número es mayor:
El operador condicional se puede sustituir por la sentencia if...then...else que veremos más adelante.
Prevalencia de operadores¶
Los operadores tienen diferente Prioridad por lo que es interesante utilizar paréntesis para controlar las operaciones sin necesidad de depender de la prioridad de los operadores.
Prevalencia de operadores, ordenados de arriba a abajo de más a menos prioridad:
| Descripción | Operadores |
|---|---|
| operadores posfijos | op++ op-- |
| operadores unarios | ++op --op +op -op ~ ! |
| multiplicación y división | * / % |
| suma y resta | + - |
| desplazamiento | << >> >>> |
| operadores relacionales | < > <= => |
| equivalencia | == != |
| operador AND | & |
| operador XOR | ^ |
| operador OR | | |
| AND booleano | && |
| OR booleano | || |
| condicional | ?: |
| operadores de asignación | = += -= *= /= %= &= ^= |= <<= >>= >>>= |