När vi pratar om prioritet i Java kommer operatören först i åtanke. Det finns vissa regler definierade i Java för att specificera i vilken ordning operatorerna i ett uttryck utvärderas. Operatörsföreträde är ett koncept för att bestämma gruppen av termer i ett uttryck. Operatörsföreträdet ansvarar för att utvärdera uttrycken. I Java , parentes() och Array subscript[] har den högsta prioritet i Java. Till exempel har addition och subtraktion högre prioritet än operatörerna Vänsterskift och Högerskift.
Nedan är en tabell definierad där den lägsta prioritetsoperatorn visas överst i den.
Företräde | Operatör | Typ | Associativitet |
---|---|---|---|
1) | = += -= *= /= %= | Uppdrag Tilläggsuppdrag Subtraktionsuppgift Multiplikationsuppgift Avdelningsuppdrag Moduluppgift | Höger till vänster |
2) | ? : | Ternär villkorlig | Höger till vänster |
3) | || | Logisk ELLER | Vänster till höger |
4) | && | Logisk OCH | Vänster till höger |
5) | | | Bitvis inklusive ELLER | Vänster till höger |
6) | ^ | Bitvis exklusivt ELLER | Vänster till höger |
7) | & | Bitvis OCH | Vänster till höger |
8) | != == | Relationellt är inte lika med Relationellt är lika med | 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 |
10) | >> << >>> | Bitvis högerväxling med skyltförlängning Bitvis vänsterväxling Bitvis högerväxling med noll förlängning | Vänster till höger |
elva) | - + | Subtraktion Tillägg | Vänster till höger |
12) | * / % | Multiplikation Division Modul | Vänster till höger |
13) | - + ~ ! (typ) | Unär minus Unärt plus Unärt bitvis komplement Unär logisk negation Unär typcast | Höger till vänster |
14) | ++ -- | Enarlig efterökning Enarlig efterdekrement | Höger till vänster |
femton) | · () [] | Punktoperator Parentes Array subscript | Vänster till höger |
Företrädesordning
När två operatörer delar en enskild operand, går den operatör som har högst företräde först. Till exempel behandlas x + y * z som x + (y * z), medan x * y + z behandlas som (x * y) + z eftersom * operatorn har högsta prioritet i jämförelse med operatorn +.
vad är const i java
Associativitet
Associativ är ett begrepp relaterat till de operatorer som används när två operatorer med samma prioritet kommer i ett uttryck. Associativitetskonceptet är mycket användbart för att gå från den situationen. Antag att vi har ett uttryck a + b - c (+ och - operatorer har samma prioritet) , och detta uttryck kommer att behandlas som (a + (b - c)) eftersom dessa operatorer är höger till vänster-associativa. Å andra sidan kommer a+++--b+c++ att behandlas som ((a++)+((--b)+(c++))) eftersom de unära efteröknings- och dekrementoperatorerna är rätt till vänster-associativa.
Ett exempel definieras nedan för att förstå hur ett uttryck utvärderas med hjälp av prioritetsordning och associativitet?
Uttryck: x = 4 / 2 + 8 * 4 - ( 5+ 2 ) % 3
Lösning:
1) I uttrycket ovan är den högsta prioritetsoperatorn () . Så, parentesen går först och räknar först.
x = 4 / 2 + 8 * 4 - 7 % 3
2) Nu, /, * och % operatörer har samma företräde och högst från + och - Här använder vi associativitetskonceptet för att lösa dem. De associativa för dessa operatorer är från vänster till höger. Så, / operatören går först och sedan * och % samtidigt.
x = 2 + 8 * 4 - 7 % 3
x = 2 + 32 - 7 % 3
python sorterad tuppel
x = 2 + 32 - 1
3) Nu, + och - Operatörer har båda också samma företräde, och associativiteten hos dessa operatorer inte till höger. Så, + operatören kommer att gå först och sedan - kommer att gå.
x = 34 - 1
x = 33
HighestPrecedence.java
//import classes import java.util.*; //creating HighestPrecedence class to evaluate the expression public class HighestPrecedence { //main() method starts public static void main(String[] args) { //initialize variables with default values int x = 2; int y = 5; int z = 12; //calculating exp1, exp2, and exp3 int exp1 = x +(z/x+(z%y)*(z-x)^2); int exp2 = z/x+y*x-(y+x)%z; int exp3 = 4/2+8*4-(5+2)%3; //printing the result System.out.println(exp1); System.out.println(exp2); System.out.println(exp3); } }
Produktion
java datum aktuellt