La precedencia de operadores se refiere a la prioridad otorgada a los operadores al analizar una declaración que tiene más de un operador realizando operaciones en ella. Es importante asegurar el resultado correcto y también ayudar al compilador a comprender cuál debe ser el orden de las operaciones. Los operadores con prioridades más altas se resuelven primero. Pero a medida que se avanza en la lista, disminuye la prioridad y por ende su resolución.
Precedencia y asociatividad: la asociatividad en general establece que, independientemente del orden de los operandos para una operación determinada, el resultado sigue siendo el mismo. La precedencia se usa para decirle al compilador qué operaciones se deben realizar primero. Por ejemplo, considere tres números 2, 3 y 4. Ahora considere dos operaciones:
( 2 + 3 ) + 4 = 2 + ( 3 + 4 ) ( 2 >= 3 ) or ( 1 != 4 )
La primera operación es la asociatividad donde el orden no importa. El segundo caso es la precedencia, donde para alcanzar el resultado deseado tiene que haber un orden adecuado en el que se realizarán las operaciones.
La asociatividad no es un concepto singular, mientras que las operaciones de precedencia deben tratarse con asociatividad de izquierda a derecha o de derecha a izquierda. Esto depende completamente de la operación y le dice al analizador desde qué dirección debe comenzar la operación.
Ejemplo:
// left-to-right associativity : division 3/4
// right-to-left associativity : assignment a = 3
Tabla de precedencia de operadores: la tabla de precedencia de operadores puede ayudar a conocer la precedencia de un operador en relación con otros operadores. A medida que se desciende en la tabla, la precedencia de estos operadores decrece entre sí, es decir, la prioridad de un operador es menor que la de los operadores que están por encima y mayor que la de los que están por debajo. Los operadores en la misma fila tienen la misma prioridad.
En esta tabla, 1 es la precedencia más alta y 19 es la precedencia más baja.
Precedencia | Operador | Descripción | Asociatividad | Ejemplo |
---|---|---|---|---|
1 | () | Agrupamiento | – | (1+2) |
2 | . | Miembro | de izquierda a derecha | obj.función |
[] | Miembro | de izquierda a derecha | obj[“función”] | |
nuevo | Crear | – | nueva fecha() | |
() | Llamada de función | de izquierda a derecha | función() | |
3 | ++ | incremento de sufijo | – | yo ++ |
— | decremento de sufijo | – | i- | |
4 | ++ | Incremento de prefijo | De derecha a izquierda | ++i |
— | decremento de prefijo | -i | ||
! | NO lógico | !CIERTO | ||
tipo de | Escribe | tipo de un | ||
5 | ** | exponenciación | De derecha a izquierda | 4**2 |
6 | * | Multiplicación | de izquierda a derecha | 2*3 |
/ | División | 18/9 | ||
% | Resto | 4%2 | ||
7 | + | Suma | de izquierda a derecha | 2+4 |
– | Sustracción | 4-2 | ||
8 | << | Shift izquierdo | de izquierda a derecha | y<<2 |
>> | Giro a la derecha | y>>2 | ||
>>> | Desplazamiento a la derecha sin firmar | y>>>2 | ||
9 | < | Menos que | de izquierda a derecha | 3<4 |
<= | Menor o igual | 3<=4 | ||
> | Mas grande que | 4>3 | ||
>= | Mayor que o igual | 4>=3 | ||
en | En | «PI» en MATEMÁTICAS | ||
en vez de | En vez de | Una instancia de B | ||
10 | == | Igualdad | de izquierda a derecha | x==y |
!= | Desigualdad | x!=y | ||
=== | estrictamente igual | x===y | ||
!== | Estrictamente desigual | x!==y | ||
11 | & | Y bit a bit | de izquierda a derecha | x&y |
12 | ^ | XOR bit a bit | de izquierda a derecha | x^y |
13 | | | O bit a bit | de izquierda a derecha | x|y |
14 | && | Y lógico | de izquierda a derecha | x&&y |
15 | || | O lógico | de izquierda a derecha | x||y |
dieciséis | ? : | Condicional | De derecha a izquierda | (x>y)?x:y |
17 | Asignación | De derecha a izquierda | x=5 | |
+= | x+=3 | |||
-= | x = 3 | |||
*= | x*=3 | |||
/= | x/=3 | |||
%= | x%=3 | |||
<<= | x<<=2 | |||
>>= | x>>=2 | |||
>>>= | x>>>=2 | |||
&= | x&=y | |||
^= | x^=y | |||
|= | x|=y | |||
18 | rendir | función de pausa | De derecha a izquierda | rendimiento x |
19 | , | Coma | de izquierda a derecha | x, y |
Publicación traducida automáticamente
Artículo escrito por vanshikagoyal43 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA