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å.








