Java Operator elsőbbség

Az operátor elsőbbsége meghatározza a kifejezés operátorainak kiértékelésének sorrendjét.

Mielőtt elkezdené olvasni ezt a cikket, alapismeretekkel kell rendelkeznie a Java operátorokról.

Most nézze meg az alábbi állítást:

 int myInt = 12 - 4 * 2;

Mi lesz a myInt értéke? Lesz (12 - 4)*2, vagyis 16? Vagy az lesz 12 - (4 * 2), vagyis 4?

Amikor két operátornak közös operandusza van, 4ebben az esetben először a legnagyobb prioritású operátort működtetik.

A Java-ban a fontossági sorrend *magasabb, mint a -. Ezért a szorzást kivonás előtt hajtják végre, és a myInt értéke 4 lesz.

Operátor elsőbbségi táblázat

Az alábbi táblázat felsorolja az operátorok elsőbbségét a Java-ban; minél magasabb jelenik meg a táblázatban, annál nagyobb az elsőbbsége.

Java Operator elsőbbség
Operátorok Elsőbbség
postfix növekmény és csökkentés ++ --
előtag növekmény és csökkentés, és unária ++ -- + - ~ !
szorzó * / %
adalékanyag + -
váltás << >> >>>
relációs < > <= >= instanceof
egyenlőség == !=
bitenkénti ÉS &
bitenként exkluzív VAGY ^
bitenkénti befogadás VAGY |
logikus ÉS &&
logikus VAGY ||
hármas ? :
feladat = += -= *= /= %=
&= ^= |= <<= >>= >>>=

Példa: Operátor elsőbbség

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

Kimenet :

 2

Az előtag operátori elsőbbsége ++magasabb, mint a -kivonás operátora. Ennélfogva,

 eredmény = a - ++ c - ++ b;

egyenértékű

 eredmény = a - (++ c) - (++ b);

Ha több operátort és operandusot kezel egyetlen kifejezésben, akkor az egyértelműség érdekében zárójeleket használhat, mint a fenti példa. Először a zárójelben lévő kifejezést értékelik.

Operátorok asszociativitása a Java-ban

Ha egy kifejezésnek két hasonló prioritású operátora van, akkor a kifejezést asszociativitása alapján értékelik (vagy balról jobbra, vagy jobbról balra). Vegyünk egy példát.

 a = b = c;

Itt c értéket rendelünk a b változóhoz. Ezután b értéket rendelünk az a változóhoz. Miért? Ez azért van, mert az = operátor asszociativitása jobbról balra van.

Az alábbi táblázat a Java operátorok asszociativitását és asszociativitását mutatja be.

Java Operator elsőbbség és asszociativitás
Operátorok Elsőbbség Asszociativitás
postfix növekmény és csökkentés ++ -- balról jobbra
előtag növekmény és csökkentés, és unária ++ -- + - ~ ! jobbról balra
szorzó * / % balról jobbra
adalékanyag + - balról jobbra
váltás << >> >>> balról jobbra
relációs < > <= >= instanceof balról jobbra
egyenlőség == != balról jobbra
bitenkénti ÉS & balról jobbra
bitenként exkluzív VAGY ^ balról jobbra
bitenkénti befogadás VAGY | balról jobbra
logikus ÉS && balról jobbra
logikus VAGY || balról jobbra
hármas ? : jobbról balra
feladat = += -= *= /= %=
&= ^= |= <<= >>= >>>=
jobbról balra

Itt nem kell mindent megjegyezned. Legtöbbször önmagában van értelme az operátorok elsőbbségének és asszociativitásának. Kétség esetén bármikor visszatérhet a cikkhez. Használhat zárójeleket is, ha úgy gondolja, hogy ez megkönnyíti a kód megértését.

érdekes cikkek...