Prioridad del operador de Java

La precedencia de los operadores determina el orden en el que se evalúan los operadores de una expresión.

Antes de comenzar a leer este artículo, debe tener un conocimiento básico de los operadores de Java.

Ahora, eche un vistazo a la declaración a continuación:

 int myInt = 12 - 4 * 2;

¿Cuál será el valor de myInt? ¿Será (12 - 4)*2, es decir 16,? ¿O será 12 - (4 * 2), es decir 4,?

Cuando dos operadores comparten un operando común, 4en este caso, se opera primero el operador con mayor precedencia.

En Java, la precedencia de *es mayor que la de -. Por lo tanto, la multiplicación se realiza antes de la resta y el valor de myInt será 4.

Tabla de precedencia de operadores

La siguiente tabla enumera la precedencia de los operadores en Java; cuanto más alto aparezca en la tabla, mayor será su precedencia.

Prioridad del operador de Java
Operadores Precedencia
incremento y decremento postfix ++ --
prefijo incremento y decremento, y unario ++ -- + - ~ !
multiplicativo * / %
aditivo + -
cambio << >> >>>
relacional < > <= >= instanceof
igualdad == !=
bit a bit Y &
OR exclusivo bit a bit ^
OR inclusivo bit a bit |
Y lógico &&
OR lógico ||
ternario ? :
asignación = += -= *= /= %=
&= ^= |= <<= >>= >>>=

Ejemplo: precedencia del operador

 class Precedence ( public static void main(String() args) ( int a = 10, b = 5, c = 1, result; result = a-++c-++b; System.out.println(result); ) )

Salida :

 2

La precedencia del operador del prefijo ++es mayor que la del -operador de resta. Por lo tanto,

 resultado = a - ++ c - ++ b;

es equivalente a

 resultado = a - (++ c) - (++ b);

Cuando se trata de varios operadores y operandos en una sola expresión, puede utilizar paréntesis como en el ejemplo anterior para mayor claridad. La expresión entre paréntesis se evalúa primero.

Asociatividad de operadores en Java

Si una expresión tiene dos operadores con precedencia similar, la expresión se evalúa según su asociatividad (ya sea de izquierda a derecha o de derecha a izquierda). Pongamos un ejemplo.

 a = b = c;

Aquí, el valor de c se asigna a la variable b. Entonces se asigna el valor de b a la variable a. ¿Por qué? Es porque la asociatividad del operador = es de derecha a izquierda.

La siguiente tabla muestra la asociatividad de los operadores de Java junto con su asociatividad.

Precedencia y asociatividad del operador Java
Operadores Precedencia Asociatividad
incremento y decremento postfix ++ -- de izquierda a derecha
prefijo incremento y decremento, y unario ++ -- + - ~ ! De derecha a izquierda
multiplicativo * / % de izquierda a derecha
aditivo + - de izquierda a derecha
cambio << >> >>> de izquierda a derecha
relacional < > <= >= instanceof de izquierda a derecha
igualdad == != de izquierda a derecha
bit a bit Y & de izquierda a derecha
OR exclusivo bit a bit ^ de izquierda a derecha
OR inclusivo bit a bit | de izquierda a derecha
Y lógico && de izquierda a derecha
OR lógico || de izquierda a derecha
ternario ? : De derecha a izquierda
asignación = += -= *= /= %=
&= ^= |= <<= >>= >>>=
De derecha a izquierda

No necesitas memorizar todo aquí. La mayoría de las veces, la precedencia y asociatividad de los operadores tiene sentido en sí misma. Siempre puede volver a este artículo como referencia en caso de duda. Además, puede usar paréntesis si cree que hace que su código sea más fácil de entender.

Articulos interesantes...