logo

Høyest prioritet i Java

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.

Høyest prioritet i Java

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
Høyest prioritet i Java