I dette afsnit lærer vi operatør forrang i Java sammen med eksempler.
Hvad er operatørprioritet?
Det operatørens forrang repræsenterer, hvordan to udtryk bindes sammen. I et udtryk bestemmer det grupperingen af operatorer med operander og bestemmer, hvordan et udtryk skal evalueres.
Når man løser et udtryk, skal man huske på to ting, den første er a forrang og den anden er associativitet .
Forrang
Prioritet er prioritet for gruppering af forskellige typer operatører med deres operander. Det er kun meningsfuldt, hvis et udtryk har mere end én operator med højere eller lavere forrang. De operatører, der har højere prioritet, evalueres først. Hvis vi først vil evaluere operatorer med lavere prioritet, skal vi gruppere operander ved at bruge parenteser og derefter evaluere.
Associativitet
Vi skal følge associativitet, hvis et udtryk har mere end to operatorer med samme forrang. I et sådant tilfælde kan et udtryk enten løses venstre til højre eller højre mod venstre, derfor.
Java-operatørpræferencetabel
Følgende tabel beskriver forrangen og associativiteten af operatorer, der bruges i Java.
Forrang | Operatør | Type | Associativitet |
---|---|---|---|
femten | () [] · | Parenteser Array subscript Medlemsvalg | Venstre til højre |
14 | ++ -- | Unær post-tilvækst Unær post-dekrement | Højre til venstre |
13 | ++ -- + - ! ~ (type) | Unært præ-tilvækst Unær præ-dekrement Unært plus Unær minus Unær logisk negation Unært bitvis komplement Unær type støbning | Højre til venstre |
12 | * / % | Multiplikation Division Modulus | Venstre til højre |
elleve | + - | Tilføjelse Subtraktion | Venstre til højre |
10 | << >> >>> | Bitvist venstreskift Bitvist højreskift med tegnforlængelse Bitvist højreskift med nul forlængelse | Venstre til højre |
9 | < <= > >= forekomst af=> | Relationel mindre end Relationel mindre end eller lig Relationel større end Relationel større end eller lig Typesammenligning (kun objekter) | Venstre til højre |
8 | == != | Relationel er lig med Relationel er ikke lig med | Venstre til højre |
7 | & | Bitvis OG | Venstre til højre |
6 | ^ | Bitvis eksklusiv ELLER | Venstre til højre |
5 | | | Bitvis inklusive ELLER | Venstre til højre |
4 | && | Logisk OG | Venstre til højre |
3 | || | Logisk ELLER | Venstre til højre |
2 | ? : | Ternær betinget | Højre til venstre |
1 | = += -= *= /= %= | Opgave Tillægsopgave Subtraktionsopgave Multiplikationsopgave Divisionsopgave Modulopgave | Højre til venstre |
Bemærk: Større tallet er højere.
Eksempel på Java-operatørpræference
Lad os forstå operatørens forrang gennem et eksempel. Overvej følgende udtryk og gæt svaret.
1 + 5 * 3
Du tænker måske, at svaret ville være 18 men ikke sådan. Fordi multiplikationsoperatoren (*) har højere forrang end additionsoperatoren (+). Derfor evaluerer udtrykket først 5*3 og evaluerer derefter det resterende udtryk, dvs. 1+15. Derfor vil svaret være 16 .
Lad os se et andet eksempel. Overvej følgende udtryk.
x + y * z / k
I ovenstående udtryk udføres * og / operationer før + på grund af forrang. y ganges med z før den divideres med k på grund af associativitet.