I det här avsnittet kommer vi att lära oss operatör företräde i Java tillsammans med exempel.
Vad är operatörsföreträde?
De operatörsföreträde representerar hur två uttryck binds samman. I ett uttryck bestämmer den grupperingen av operatorer med operander och bestämmer hur ett uttryck ska utvärderas.
öppna inställningsmenyn
När du löser ett uttryck måste två saker hållas i åtanke, den första är a företräde och den andra är associativitet .
Företräde
Prioritet är prioritet för att gruppera olika typer av operatörer med deras operander. Det är bara meningsfullt om ett uttryck har mer än en operator med högre eller lägre prioritet. De operatörer som har högre prioritet utvärderas först. Om vi först vill utvärdera operatorer med lägre prioritet måste vi gruppera operander med hjälp av parenteser och sedan utvärdera.
Associativitet
Vi måste följa associativitet om ett uttryck har fler än två operatorer med samma prioritet. I ett sådant fall kan ett uttryck lösas antingen vänster till höger eller höger till vänster, följaktligen.
Tabell för Java-operatörsprioritet
Följande tabell beskriver prioritet och associativitet för operatorer som används i Java.
Företräde | Operatör | Typ | Associativitet |
---|---|---|---|
femton | () [] · | Parentes Array subscript Medlemsval | Vänster till höger |
14 | ++ -- | Enarlig efterökning Enarlig efterdekrement | Höger till vänster |
13 | ++ -- + - ! ~ (typ) | Enarlig förökning Enär förminskning Unärt plus Unär minus Unär logisk negation Unärt bitvis komplement Unär typ avgjutning | Höger till vänster |
12 | * / % | Multiplikation Division Modul | Vänster till höger |
elva | + - | Tillägg Subtraktion | Vänster till höger |
10 | << >> >>> | Bitvis vänsterväxling Bitvis högerväxling med skyltförlängning Bitvis högerväxling med noll förlängning | Vänster till höger |
9 | < <= > >= instans av=> | Relationellt mindre än Relationellt mindre än eller lika Relationellt större än Relationellt större än eller lika Typjämförelse (endast objekt) | Vänster till höger |
8 | == != | Relationellt är lika med Relationellt är inte lika med | Vänster till höger |
7 | & | Bitvis OCH | Vänster till höger |
6 | ^ | Bitvis exklusivt ELLER | Vänster till höger |
5 | | | Bitvis inklusive ELLER | Vänster till höger |
4 | && | Logisk OCH | Vänster till höger |
3 | || | Logisk ELLER | Vänster till höger |
2 | ? : | Ternär villkorlig | Höger till vänster |
1 | = += -= *= /= %= | Uppdrag Tilläggsuppdrag Subtraktionsuppgift Multiplikationsuppgift Avdelningsuppdrag Moduluppgift | Höger till vänster |
Obs: Större desto högre prioritet.
Exempel på Java-operatörspreferens
Låt oss förstå operatörens företräde genom ett exempel. Betrakta följande uttryck och gissa svaret.
1 + 5 * 3
Du kanske tror att svaret skulle vara 18 men inte så. Eftersom multiplikationsoperatorn (*) har högre prioritet än additionsoperatorn (+). Följaktligen utvärderar uttrycket först 5*3 och utvärderar sedan det återstående uttrycket, dvs. 1+15. Därför blir svaret 16 .
Låt oss se ett annat exempel. Betrakta följande uttryck.
sträng i array c
x + y * z / k
I uttrycket ovan utförs * och / operationer före + på grund av prioritet. y multipliceras med z innan den divideras med k på grund av associativitet.