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ó.
bucles java
Quan es resol una expressió, cal tenir en compte dues coses, la primera és a precedència i el segon és associativitat .
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.
vlc baixar vídeos de youtube
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 .
numerar l'alfabet
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.