Precedència de l'operador Java

Precedència de l'operador Java

En aquesta secció, aprendrem el operador precedència a Java juntament amb exemples.

Què és la precedència de l'operador?

El prioritat de l'operador representa com s'uneixen dues expressions. En una expressió, determina l'agrupació d'operadors amb operands i decideix com s'avaluarà una expressió.

Quan es resol una expressió, cal tenir en compte dues coses, la primera és a precedència i el segon és associativitat .

Precedència de l

Precedència

La prioritat és la prioritat per agrupar diferents tipus d'operadors amb els seus operands. Només té sentit si una expressió té més d'un operador amb una precedència més alta o més baixa. En primer lloc s'avaluen els operadors que tenen una prioritat més alta. Si volem avaluar primer els operadors de precedència inferior, hem d'agrupar els operands mitjançant parèntesis i després avaluar.

Associativitat

Hem de seguir l'associativitat si una expressió té més de dos operadors de la mateixa precedència. En aquest cas, una expressió es pot resoldre esquerra a dreta o de dreta a esquerra, d'acord amb.

Taula de prioritats d'operadors Java

La taula següent descriu la precedència i l'associativitat dels operadors utilitzats a Java.

Precedència Operador Tipus Associativitat
15 ()
[]
·
Parèntesis
Subíndex de matriu
Selecció de membres
Esquerra a dreta
14 ++
--
Post-increment unari
Post-decrement unari
De dreta a esquerra
13 ++
--
+
-
!
~
(tipus)
Preincrement unari
Predisminució unària
Plus unari
Menys unari
Negació lògica unària
Complement unari per bits
Cast de tipus unari
De dreta a esquerra
12 *
/
%
Multiplicació
Divisió
Mòdul
Esquerra a dreta
11 +
-
Addició
Resta
Esquerra a dreta
10 < <
>>
>>>
Desplaçament a l'esquerra per bits
Desplaçament a la dreta per bits amb extensió de signe
Desplaçament a la dreta bit a bit amb extensió zero
Esquerra a dreta
9 <
<=
>
>=
en lloc de
Relacional menys que
Relacional menor o igual
Relacional més gran que
Relacional major o igual
Comparació de tipus (només objectes)
Esquerra a dreta
8 ==
!=
Relacional és igual a
Relacional no és igual a
Esquerra a dreta
7 & I per bits Esquerra a dreta
6 ^ OR exclusiu per bits Esquerra a dreta
5 | OR inclòs per bits Esquerra a dreta
4 && I lògic Esquerra a dreta
3 || OR lògic Esquerra a dreta
2 ? : Condicional ternari De dreta a esquerra
1 =
+=
-=
*=
/=
%=
Encàrrec
Encàrrec addicional
Tasca de resta
Tasca de multiplicació
Encàrrec de la divisió
Assignació de mòduls
De dreta a esquerra

Nota: més gran és el nombre més gran és la precedència.

Exemple de precedencia de l'operador Java

Entenem la precedència de l'operador mitjançant un exemple. Considera l'expressió següent i endevina la resposta.

 1 + 5 * 3  

Podria estar pensant que la resposta seria 18 però no així. Perquè l'operador de multiplicació (*) té una prioritat més alta que l'operador de suma (+). Per tant, l'expressió primer avalua 5*3 i després avalua l'expressió restant, és a dir, 1+15. Per tant, la resposta serà 16 .

Vegem un altre exemple. Considereu la següent expressió.

 x + y * z / k  

A l'expressió anterior, les operacions * i / es realitzen abans de + a causa de la precedència. y es multiplica per z abans de dividir-la per k a causa de l'associativitat.