Java Operator Precedence

Operatørens forrang bestemmer rekkefølgen operatørene i et uttrykk vurderes i.

Før du begynner å lese denne artikkelen, bør du ha grunnleggende kunnskaper om Java-operatører.

Ta en titt på uttalelsen nedenfor:

 int myInt = 12 - 4 * 2;

Hva vil verdien av myInt være? Vil det være (12 - 4)*2, altså 16? Eller det blir det 12 - (4 * 2)altså 4?

Når to operatører deler en felles operand, 4opereres i dette tilfellet operatøren med høyest prioritet først.

I Java er forrang av *høyere enn for -. Derfor blir multiplikasjonen utført før subtraksjon, og verdien av myInt vil være 4.

Operatørens prioritetstabell

Tabellen nedenfor viser prioriteten til operatører i Java; jo høyere det vises i tabellen, jo høyere er dens forrang.

Java Operator Precedence
Operatører Presedens
økning og reduksjon av postfix ++ --
prefiks inkrement og decrement, og unary ++ -- + - ~ !
multiplikativ * / %
tilsetningsstoff + -
skifte << >> >>>
relasjonell < > <= >= instanceof
likestilling == !=
bitvis OG &
bitvis eksklusiv ELLER ^
bitvis inkluderende ELLER |
logisk OG &&
logisk ELLER ||
ternær ? :
oppdrag = += -= *= /= %=
&= ^= |= <<= >>= >>>=

Eksempel: Operatørens prioritet

 class Precedence ( public static void main(String() args) ( int a = 10, b = 5, c = 1, result; result = a-++c-++b; System.out.println(result); ) )

Utgang :

 2

Operatørens forrang for prefikset ++er høyere enn for -subtraksjonsoperatøren. Derfor,

 resultat = a - ++ c - ++ b;

tilsvarer

 resultat = a - (++ c) - (++ b);

Når du arbeider med flere operatører og operander i et enkelt uttrykk, kan du bruke parenteser som i eksemplet ovenfor for klarhet. Uttrykket innenfor parentesene evalueres først.

Associativity of Operators in Java

Hvis et uttrykk har to operatorer med samme forrang, blir uttrykket evaluert i henhold til dets associativitet (enten fra venstre mot høyre eller fra høyre mot venstre). La oss ta et eksempel.

 a = b = c;

Her tildeles verdien av c variabelen b. Da tildeles verdien av b til variabelen a. Hvorfor? Det er fordi assosiativiteten til = operator er fra høyre til venstre.

Tabellen nedenfor viser assosiativiteten til Java-operatører sammen med deres assosiativitet.

Java Operator Precedence and Associativity
Operatører Presedens Assosiativitet
økning og reduksjon av postfix ++ -- venstre til høyre
prefiks inkrement og decrement, og unary ++ -- + - ~ ! høyre til venstre
multiplikativ * / % venstre til høyre
tilsetningsstoff + - venstre til høyre
skifte << >> >>> venstre til høyre
relasjonell < > <= >= instanceof venstre til høyre
likestilling == != venstre til høyre
bitvis OG & venstre til høyre
bitvis eksklusiv ELLER ^ venstre til høyre
bitvis inkluderende ELLER | venstre til høyre
logisk OG && venstre til høyre
logisk ELLER || venstre til høyre
ternær ? : høyre til venstre
oppdrag = += -= *= /= %=
&= ^= |= <<= >>= >>>=
høyre til venstre

Du trenger ikke å huske alt her. Mesteparten av tiden gir forrang og tilknytning til operatører mening i seg selv. Du kan alltid komme tilbake til denne artikkelen for referanse når du er i tvil. Du kan også bruke parentes hvis du tror det gjør koden lettere å forstå.

Interessante artikler...