Prednosť operátora Java

Prednosť operátora určuje poradie, v ktorom sú operátory vo výraze vyhodnotené.

Skôr ako začnete čítať tento článok, mali by ste mať základné znalosti o operátoroch Java.

Teraz sa pozrite na vyhlásenie uvedené nižšie:

 int myInt = 12 - 4 * 2;

Aká bude hodnota myInt? To bude (12 - 4)*2, to znamená, že 16? Alebo bude 12 - (4 * 2), teda 4,?

Keď dvaja operátori zdieľajú spoločný operand, 4v tomto prípade sa najskôr operuje operátor s najvyššou prednosťou.

V Jave je prednosť pred *vyššou ako -. Násobenie sa teda vykoná pred odčítaním a hodnota myInt bude 4.

Tabuľka predností operátora

V nasledujúcej tabuľke je uvedená priorita operátorov v prostredí Java; čím vyššie je uvedená v tabuľke, tým vyššia je jej prednosť.

Prednosť operátora Java
Operátorov Prednosť
prírastok a úbytok postfixu ++ --
prírastok a úbytok prefixu a unárne ++ -- + - ~ !
multiplikatívne * / %
prísada + -
posun << >> >>>
vzťahový < > <= >= instanceof
rovnosť == !=
bitové AND &
bitové exkluzívne ALEBO ^
bitový vrátane OR |
logické AND &&
logické ALEBO ||
ternárny ? :
zadanie = += -= *= /= %=
&= ^= |= <<= >>= >>>=

Príklad: prednosť operátora

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

Výstup :

 2

Prednosť operátora prefixu ++je vyššia ako prednosť -operátora odčítania. Teda

 výsledok = a - ++ c - ++ b;

je ekvivalentné k

 výsledok = a - (++ c) - (++ b);

Keď pracujete s viacerými operátormi a operandmi v jednom výraze, môžete kvôli zrozumiteľnosti použiť zátvorky ako v príklade vyššie. Najskôr sa vyhodnotí výraz v zátvorke.

Asociativita operátorov v Jave

Ak má výraz dva operátory s podobnou prednosťou, bude sa výraz hodnotiť podľa jeho asociativity (zľava doprava alebo zľava doprava). Zoberme si príklad.

 a = b = c;

Tu je hodnota c priradená premennej b. Potom je hodnote b priradená premenná a. Prečo? Je to preto, že asociativita operátora = je sprava doľava.

Nasledujúca tabuľka zobrazuje asociativitu operátorov Java spolu s ich asociativitou.

Prednosť a asociatívnosť operátora Java
Operátorov Prednosť Asociatívnosť
prírastok a úbytok postfixu ++ -- zľava doprava
prírastok a úbytok prefixu a unárne ++ -- + - ~ ! zprava doľava
multiplikatívne * / % zľava doprava
prísada + - zľava doprava
posun << >> >>> zľava doprava
vzťahový < > <= >= instanceof zľava doprava
rovnosť == != zľava doprava
bitové AND & zľava doprava
bitové exkluzívne ALEBO ^ zľava doprava
bitový vrátane OR | zľava doprava
logické AND && zľava doprava
logické ALEBO || zľava doprava
ternárny ? : zprava doľava
zadanie = += -= *= /= %=
&= ^= |= <<= >>= >>>=
zprava doľava

Tu si nemusíte pamätať všetko. Väčšinou má prednosť a asociatívnosť operátorov zmysel sama o sebe. V prípade pochybností sa môžete kedykoľvek vrátiť k tomuto článku ako referencia. Môžete tiež použiť zátvorky, ak si myslíte, že uľahčuje pochopenie vášho kódu.

Zaujímavé články...