Når vi snakker om forrang i Java, kommer operatøren først i tankene. Det er visse regler definert i Java for å spesifisere rekkefølgen som operatorene i et uttrykk evalueres i. Operatør forrang er et konsept for å bestemme gruppen av termer i et uttrykk. Operatørens forrang er ansvarlig for å evaluere uttrykkene. I Java , parentes() og Array subscript[] har høyest prioritet i Java. For eksempel har addisjon og subtraksjon høyere prioritet enn venstreskift- og høyreskiftoperatorene.
Nedenfor er en tabell definert der den laveste prioritetsoperatoren vises øverst i den.
Presedens | Operatør | Type | Assosiativitet |
---|---|---|---|
1) | = += -= *= /= %= | Oppdrag Tilleggsoppgave Subtraksjonsoppgave Multiplikasjonsoppgave Divisjonsoppdrag Moduloppdrag | Høyre til venstre |
2) | ? : | Ternær betinget | Høyre til venstre |
3) | || | Logisk ELLER | Venstre til høyre |
4) | && | Logisk OG | Venstre til høyre |
5) | | | Bitvis inkluderende ELLER | Venstre til høyre |
6) | ^ | Bitvis eksklusiv ELLER | Venstre til høyre |
7) | & | Bitvis OG | Venstre til høyre |
8) | != == | Relasjonell er ikke lik Relasjonell er lik | 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 |
10) | >> << >>> | Bitvis høyre skift med skiltforlengelse Bitvis venstre skift Bitvis høyre skift med null forlengelse | Venstre til høyre |
elleve) | - + | Subtraksjon Addisjon | Venstre til høyre |
12) | * / % | Multiplikasjon Inndeling Modulus | Venstre til høyre |
1. 3) | - + ~ ! (type) | Unært minus Unært pluss Unært bitvis komplement Unær logisk negasjon Unær typecast | Høyre til venstre |
14) | ++ -- | Unært etterøkning Unær post-dekrement | Høyre til venstre |
femten) | · () [] | Punktoperatør Parenteser Array-abonnement | Venstre til høyre |
Forrangsrekkefølge
Når to operatører deler en enkelt operand, går operatøren med høyest prioritet først. For eksempel behandles x + y * z som x + (y * z), mens x * y + z behandles som (x * y) + z fordi *-operatoren har høyeste prioritet sammenlignet med +-operatoren.
kjerne java
Assosiativitet
Assosiativ er et konsept relatert til operatorene som brukes når to operatorer med samme forrang kommer i et uttrykk. Assosiativitetskonseptet er veldig nyttig å gå fra den situasjonen. Anta at vi har et uttrykk a + b - c (+ og - operatører har samme prioritet) , og dette uttrykket vil bli behandlet som (a + (b - c)) fordi disse operatørene er assosiative fra høyre til venstre. På den annen side vil a+++--b+c++ bli behandlet som ((a++)+((--b)+(c++))) fordi de unære post-inkrement- og dekrementoperatorene er høyre til venstre-assosiative.
Et eksempel er definert nedenfor for å forstå hvordan et uttrykk evalueres ved bruk av prioritetsrekkefølge og assosiativitet?
Uttrykk: x = 4 / 2 + 8 * 4 - ( 5+ 2 ) % 3
Løsning:
1) I uttrykket ovenfor er den høyeste prioritetsoperatoren () . Så parentesen går først og beregner først.
x = 4 / 2 + 8 * 4 - 7 % 3
2) Nå, /, * og % operatører har samme forrang og høyest fra + og - Her bruker vi assosiativitetsbegrepet for å løse dem. Assosiativet til disse operatorene er fra venstre til høyre. Så, / operatør går først og deretter * og % samtidig.
x = 2 + 8 * 4 - 7 % 3
x = 2 + 32 - 7 % 3
java-strengen er tom
x = 2 + 32 - 1
3) Nå, + og - operatører har begge også samme forrang, og assosiativiteten til disse operatørene ikke til høyre. Så, + operatør vil gå først, og deretter - vil 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); } }
Produksjon
java int til dobbel