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 .
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.