logo

Voorrang van Java-operator

In dit gedeelte leren we de exploitant voorrang op Java samen met voorbeelden.

Wat is operatorprioriteit?

De prioriteit van de operator geeft weer hoe twee uitdrukkingen met elkaar verbonden zijn. In een expressie bepaalt het de groepering van operators met operanden en bepaalt het hoe een expressie zal evalueren.

hoe je een string naar een geheel getal converteert in Java

Bij het oplossen van een uitdrukking moeten twee dingen in gedachten worden gehouden: de eerste is a voorrang en de tweede is associativiteit .

Voorrang van Java-operator

Voorrang

Voorrang is de prioriteit voor het groeperen van verschillende typen operators met hun operanden. Het heeft alleen betekenis als een uitdrukking meer dan één operator met hogere of lagere prioriteit heeft. De operatoren met een hogere prioriteit worden eerst geëvalueerd. Als we eerst operatoren met lagere prioriteit willen evalueren, moeten we operanden groeperen door haakjes te gebruiken en vervolgens evalueren.

Associativiteit

We moeten associativiteit volgen als een uitdrukking meer dan twee operatoren met dezelfde prioriteit heeft. In zo'n geval kan een uitdrukking ook worden opgelost van links naar rechts of rechts naar links, overeenkomstig.

Prioriteitstabel voor Java-operators

De volgende tabel beschrijft de prioriteit en associativiteit van operators die in Java worden gebruikt.

Voorrang Exploitant Type Associativiteit
vijftien ()
[]
·
Haakjes
Array-subscript
Selectie van leden
Van links naar rechts
14 ++
--
Unaire post-increment
Unaire post-verlaging
Rechts naar links
13 ++
--
+
-
!
~
(type)
Unaire pre-verhoging
Unaire pre-verlaging
Unair plus
Unair min
Unaire logische ontkenning
Unaire bitsgewijze aanvulling
Unaire type cast
Rechts naar links
12 *
/
%
Vermenigvuldiging
Divisie
Module
Van links naar rechts
elf +
-
Toevoeging
Aftrekken
Van links naar rechts
10 <<
>>
>>>
Bitsgewijs naar links verschuiven
Bitsgewijs naar rechts verschuiven met tekenverlenging
Bitsgewijze verschuiving naar rechts met nulextensie
Van links naar rechts
9 <
<=
>
>=
exemplaarvan
Relationeel minder dan
Relationeel kleiner dan of gelijk
Relationeel groter dan
Relationeel groter dan of gelijk
Typevergelijking (alleen objecten)
Van links naar rechts
8 ==
!=
Relationeel is gelijk aan
Relationeel is niet gelijk aan
Van links naar rechts
7 & Bitsgewijs EN Van links naar rechts
6 ^ Bitwise exclusieve OR Van links naar rechts
5 | Bitgewijze inclusief OR Van links naar rechts
4 && Logisch EN Van links naar rechts
3 || Logische OF Van links naar rechts
2 ? : Ternair voorwaardelijk Rechts naar links
1 =
+=
-=
*=
/=
%=
Opdracht
Toevoeging opdracht
Aftrekking opdracht
Vermenigvuldiging opdracht
Divisie opdracht
Modulustoewijzing
Rechts naar links

Opmerking: hoe groter het getal, hoe hoger de prioriteit.

Voorbeeld van prioriteit van Java-operator

Laten we de prioriteit van de operator begrijpen aan de hand van een voorbeeld. Beschouw de volgende uitdrukking en raad het antwoord.

 1 + 5 * 3 

Je zou denken dat het antwoord zou zijn 18 maar niet zo. Omdat de operator van vermenigvuldiging (*) een hogere prioriteit heeft dan de operator van optellen (+). Daarom evalueert de uitdrukking eerst 5*3 en evalueert vervolgens de resterende uitdrukking, d.w.z. 1+15. Daarom zal het antwoord zijn 16 .

Laten we nog een voorbeeld bekijken. Beschouw de volgende uitdrukking.

een string omzetten naar een geheel getal
 x + y * z / k 

In de bovenstaande expressie worden * en / bewerkingen vóór + uitgevoerd vanwege prioriteit. y wordt vermenigvuldigd met z voordat het wordt gedeeld door k vanwege associativiteit.