logo

Java-operatørprioritet

I denne delen vil vi lære operatør forrang i Java sammen med eksempler.

Hva er operatørprioritet?

De operatørens forrang representerer hvordan to uttrykk bindes sammen. I et uttrykk bestemmer det grupperingen av operatorer med operander og bestemmer hvordan et uttrykk skal evalueres.

Når du løser et uttrykk, må du huske på to ting, den første er a presedens og den andre er assosiativitet .

Java-operatørprioritet

Presedens

Forrang er prioritet for gruppering av ulike typer operatører med deres operander. Det er meningsfullt bare hvis et uttrykk har mer enn én operator med høyere eller lavere prioritet. Operatørene som har høyere prioritet blir evaluert først. Hvis vi først vil evaluere operatorer med lavere prioritet, må vi gruppere operander ved å bruke parenteser og deretter evaluere.

Assosiativitet

Vi må følge assosiativitet hvis et uttrykk har mer enn to operatorer med samme forrang. I et slikt tilfelle kan et uttrykk løses enten venstre til høyre eller høyre til venstre, tilsvarende.

Java Operator Precedence Table

Tabellen nedenfor beskriver forrangen og assosiativiteten til operatører som brukes i Java.

Presedens Operatør Type Assosiativitet
femten ()
[]
·
Parenteser
Array subscript
Medlemsvalg
Venstre til høyre
14 ++
--
Unært etterøkning
Unær post-dekrement
Høyre til venstre
1. 3 ++
--
+
-
!
~
(type)
Unært forøkning
Unært forhåndsreduksjon
Unært pluss
Unært minus
Unær logisk negasjon
Unært bitvis komplement
Unær type cast
Høyre til venstre
12 *
/
%
Multiplikasjon
Inndeling
Modulus
Venstre til høyre
elleve +
-
Addisjon
Subtraksjon
Venstre til høyre
10 <<
>>
>>>
Bitvis venstre skift
Bitvis høyre skift med skiltforlengelse
Bitvis høyre skift med null forlengelse
Venstre til høyre
9 <
<=
>
>=
tilfelle av
Relasjonell mindre enn
Relasjonell mindre enn eller lik
Relasjonell større enn
Relasjonell større enn eller lik
Typesammenligning (bare objekter)
Venstre til høyre
8 ==
!=
Relasjonell er lik
Relasjonell er ikke lik
Venstre til høyre
7 & Bitvis OG Venstre til høyre
6 ^ Bitvis eksklusiv ELLER Venstre til høyre
5 | Bitvis inkluderende ELLER Venstre til høyre
4 && Logisk OG Venstre til høyre
3 || Logisk ELLER Venstre til høyre
2 ? : Ternær betinget Høyre til venstre
1 =
+=
-=
*=
/=
%=
Oppdrag
Tilleggsoppgave
Subtraksjonsoppgave
Multiplikasjonsoppgave
Divisjonsoppdrag
Moduloppdrag
Høyre til venstre

Merk: Større tallet høyere prioritet.

Eksempel på Java Operator Precedence

La oss forstå operatørens forrang gjennom et eksempel. Tenk på følgende uttrykk og gjett svaret.

 1 + 5 * 3 

Du tenker kanskje at svaret ville være 18 men ikke slik. Fordi multiplikasjonsoperatoren (*) har høyere prioritet enn addisjonsoperatoren (+). Derfor evaluerer uttrykket først 5*3 og evaluerer deretter det gjenværende uttrykket, dvs. 1+15. Derfor vil svaret være 16 .

La oss se et annet eksempel. Tenk på følgende uttrykk.

 x + y * z / k 

I uttrykket ovenfor utføres * og / operasjoner før + på grunn av prioritet. y multipliseres med z før den deles med k på grunn av assosiativitet.