Kifejezés, precedencia
Egy kifejezés operandusokból és operátorokból (műveletekből) áll.
A kifejezésben szerepelhet egy vagy több operandus, és bármelyik operandus lehet maga is egy kifejezés. Vannak egy-, kettő, ill. háromoperandusú operátorok.
- unáris: !, sin, abszolútérték, gyök, ++, stb.
- bináris: *, /, +, -, <, > !=, +=, stb.
- ternális: ?:
Az operandus lehet:
- változó
- literál
- függvényérték
- kifejezés (zárójelben vagy anélkül)
A kifejezések kiértékelési sorrendjét a zárójelek és az operátorok határozzák meg. A kiértékelés a következő szabályok szerint történik:
- Először a zárójelekben található kifejezések értékelődnek ki (belülről kifelé).
- Ezen belül előbb mindig a nagyobb prioritású művelet hajtódik végre.
- Ha a műveletek prioritása egyforma, akkor a művelet asszociativitásától függően jobbról balra (←) vagy balról jobbra (→) történik a kiértékelés.
| prioritás | operátor | elnevezés | asszociativitás |
|---|---|---|---|
| ↓ | [] . [<param>] ++ – – | unáris postfix operátorok | → |
| ++ – – + − ∼ ! | unáris prefix operátorok | ← | |
| new (<típus>) <kif> | példányosítás, típuskényszerítés | → | |
| * / % | multiplikatív operátorok | → | |
| + − | additív operátorok | → | |
| << >> >>> | bitenkénti léptető operátorok | → | |
| < <= > >= instanceof | hasonlító operátorok | → | |
| == != | egyenlőség-vizsgáló operátorok | → | |
| & | logikai/bitenkénti ÉS | → | |
| ^ | logikai/bitenkénti KIZÁRÓ VAGY | → | |
| | | logikai/bitenkénti VAGY | → | |
| && | logikai rövid ÉS | → | |
| || | logikai rövid VAGY | → | |
| ? : | feltételes kiértékelés | → | |
| −= += *= /= %= &= ^= |= <<= >>= >>>= |
értékadó operátorok | ← |
