Prednost Java operatora

Prednost operatora određuje redoslijed ocjenjivanja operatora u izrazu.

Prije nego što započnete čitati ovaj članak, trebali biste imati osnovno znanje o Java operaterima.

Sada pogledajte izjavu u nastavku:

 int myInt = 12 - 4 * 2;

Koja će biti vrijednost myInt? Hoće li to biti (12 - 4)*2, odnosno 16? Ili će biti 12 - (4 * 2), to jest 4,?

Kada dva operatora dijele zajednički operand, 4u ovom slučaju operira se operater s najvećim prioritetom.

U Javi je prioritet od *veći od -. Dakle, množenje se izvodi prije oduzimanja, a vrijednost myInt bit će 4.

Tablica prednosti operatora

Tablica u nastavku navodi prednost operatora u Javi; što se više pojavljuje u tablici, to je veća njegova prednost.

Prednost Java operatora
Operateri Prednost
postfix povećanje i smanjenje ++ --
priraštaj i dekrement prefiksa i unarni ++ -- + - ~ !
multiplikativni * / %
aditiv + -
smjena << >> >>>
relacijski < > <= >= instanceof
jednakost == !=
bitovno I &
bitno isključiva ILI ^
bitovno uključivo ILI |
logično I &&
logično ILI ||
trostruko ? :
zadatak = += -= *= /= %=
&= ^= |= <<= >>= >>>=

Primjer: Prednost operatora

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

Izlaz :

 2

Prednost operatora prefiksa ++veća je od prednosti -operatora oduzimanja. Stoga,

 rezultat = a - ++ c - ++ b;

je ekvivalentan

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

Kada se radi s više operatora i operanda u jednom izrazu, za preglednost možete koristiti zagrade kao u gornjem primjeru. Prvo se vrednuje izraz unutar zagrada.

Asocijativnost operatora u Javi

Ako izraz ima dva operatora sa sličnim prioritetom, izraz se procjenjuje prema njegovoj asocijativnosti (bilo slijeva udesno ili zdesna ulijevo). Uzmimo primjer.

 a = b = c;

Ovdje je vrijednost c dodijeljena varijabli b. Tada se varijabli a dodjeljuje vrijednost b. Zašto? To je zato što je asocijativnost = operatora zdesna nalijevo.

Tablica u nastavku prikazuje asocijativnost Java operatora zajedno s njihovom asocijativnošću.

Prednost i udruživanje Java operatora
Operateri Prednost Asocijativnost
postfix povećanje i smanjenje ++ -- s lijeva nadesno
priraštaj i dekrement prefiksa i unarni ++ -- + - ~ ! s desna na lijevo
multiplikativni * / % s lijeva nadesno
aditiv + - s lijeva nadesno
smjena << >> >>> s lijeva nadesno
relacijski < > <= >= instanceof s lijeva nadesno
jednakost == != s lijeva nadesno
bitovno I & s lijeva nadesno
bitno isključiva ILI ^ s lijeva nadesno
bitovno uključivo ILI | s lijeva nadesno
logično I && s lijeva nadesno
logično ILI || s lijeva nadesno
trostruko ? : s desna na lijevo
zadatak = += -= *= /= %=
&= ^= |= <<= >>= >>>=
s desna na lijevo

Ovdje ne trebate sve pamtiti. Većinu vremena prednost i asocijativnost operatora sama po sebi imaju smisla. Uvijek se možete vratiti ovom članku radi reference kad ste u nedoumici. Također, možete koristiti zagrade ako mislite da vaš kod čini lakšim za razumijevanje.

Zanimljivi članci...