logo

Precedența operatorului Java

În această secțiune, vom învăța operator prioritate în Java împreună cu exemple.

Ce este prioritatea operatorului?

The prioritatea operatorului reprezintă modul în care două expresii sunt legate între ele. Într-o expresie, determină gruparea operatorilor cu operanzi și decide cum va evalua o expresie.

În timpul rezolvării unei expresii, trebuie avute în vedere două lucruri, primul este a precedenta iar al doilea este asociativitatea .

Precedența operatorului Java

Precedenta

Prioritatea este prioritatea pentru gruparea diferitelor tipuri de operatori cu operanzii lor. Are sens numai dacă o expresie are mai mult de un operator cu o prioritate mai mare sau mai mică. Operatorii cu prioritate mai mare sunt evaluați mai întâi. Dacă dorim să evaluăm mai întâi operatorii cu prioritate inferioară, trebuie să grupăm operanzii folosind paranteze și apoi să evaluăm.

Asociativitatea

Trebuie să urmărim asociativitatea dacă o expresie are mai mult de doi operatori cu aceeași precedență. Într-un astfel de caz, poate fi rezolvată fie o expresie de la stânga la dreapta sau de la dreapta la stanga, în consecinţă.

Tabelul de precedență al operatorului Java

Următorul tabel descrie precedența și asociativitatea operatorilor utilizați în Java.

Precedenta Operator Tip Asociativitatea
cincisprezece ()
[]
·
Paranteze
Indice matrice
Selectarea membrilor
De la stânga la dreapta
14 ++
--
Post-increment unar
Post-decrementare unară
De la dreapta la stanga
13 ++
--
+
-
!
~
(tip)
Pre-increment unar
Pre-decrementare unară
Plus unar
Minus unar
Negație logică unară
Complement unar pe biți
Distribuție de tip unar
De la dreapta la stanga
12 *
/
%
Multiplicare
Divizia
Modulul
De la stânga la dreapta
unsprezece +
-
Plus
Scădere
De la stânga la dreapta
10 <<
>>
>>>
Deplasare la stânga pe biți
Deplasare la dreapta pe biți cu extensie de semn
Deplasare la dreapta pe biți cu extensie zero
De la stânga la dreapta
9 <
<=
>
>=
instanță de
Relațional mai puțin decât
Relațional mai mic sau egal
Relațional mai mare decât
Relațional mai mare sau egal
Comparație de tip (numai obiecte)
De la stânga la dreapta
8 ==
!=
Relațional este egal cu
Relațional nu este egal cu
De la stânga la dreapta
7 & ȘI pe biți De la stânga la dreapta
6 ^ SAU exclusiv pe biți De la stânga la dreapta
5 | SAU inclusiv pe biți De la stânga la dreapta
4 && ȘI logic De la stânga la dreapta
3 || SAU logic De la stânga la dreapta
2 ? : Condițional ternar De la dreapta la stanga
1 =
+=
-=
*=
/=
%=
Misiune
Sarcina suplimentară
Atribuirea de scădere
Sarcina de înmulțire
Atribuirea diviziei
Atribuirea modulului
De la dreapta la stanga

Notă: Cu cât numărul este mai mare, este cu prioritate.

Exemplu de prioritate a operatorului Java

Să înțelegem prioritatea operatorului printr-un exemplu. Luați în considerare următoarea expresie și ghiciți răspunsul.

 1 + 5 * 3 

S-ar putea să vă gândiți că răspunsul ar fi 18 dar nu așa. Deoarece operatorul de înmulțire (*) are o prioritate mai mare decât operatorul de adunare (+). Prin urmare, expresia evaluează mai întâi 5*3 și apoi evaluează expresia rămasă, adică 1+15. Prin urmare, răspunsul va fi 16 .

Să vedem un alt exemplu. Luați în considerare următoarea expresie.

 x + y * z / k 

În expresia de mai sus, operațiile * și / sunt efectuate înainte de + din cauza precedenței. y este înmulțit cu z înainte de a fi împărțit la k din cauza asociativității.