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.








