V tejto časti sa naučíme operátor prednosť v Jave spolu s príkladmi.
Čo je prednosť operátora?
The prednosť operátora predstavuje spojenie dvoch výrazov. Vo výraze určuje zoskupenie operátorov s operandmi a rozhoduje o tom, ako sa výraz vyhodnotí.
Pri riešení výrazu treba mať na pamäti dve veci, prvou je a prednosť a druhý je asociatívnosť .
Prednosť
Priorita je prioritou pri zoskupovaní rôznych typov operátorov s ich operandmi. Má význam iba vtedy, ak má výraz viac ako jeden operátor s vyššou alebo nižšou prioritou. Operátory s vyššou prioritou sa vyhodnocujú ako prvé. Ak chceme najprv vyhodnotiť operátory s nižšou prioritou, musíme operandy zoskupiť pomocou zátvoriek a potom ich vyhodnotiť.
Asociativita
Asociativitu musíme dodržiavať, ak má výraz viac ako dva operátory s rovnakou prioritou. V takom prípade sa dá vyriešiť aj výraz zľava doprava alebo zprava doľava, podľa toho.
Tabuľka priorít operátorov Java
Nasledujúca tabuľka popisuje prioritu a asociatívnosť operátorov používaných v Jave.
Prednosť | Operátor | Typ | Asociativita |
---|---|---|---|
pätnásť | () [] · | Zátvorky Dolný index poľa Výber členov | Zľava doprava |
14 | ++ -- | Unárny post-prírastok Unárny post-dekrement | Zprava doľava |
13 | ++ -- + - ! ~ (typ) | Unárny predprírastok Unárny preddekrement Unárne plus Unárne mínus Unárna logická negácia Unárny bitový doplnok Obsadenie unárneho typu | Zprava doľava |
12 | * / % | Násobenie divízie Modul | Zľava doprava |
jedenásť | + - | Doplnenie Odčítanie | Zľava doprava |
10 | << >> >>> | Bitový posun doľava Bitový posun doprava s rozšírením znamienka Bitový posun doprava s nulovým rozšírením | Zľava doprava |
9 | < <= > >= instanceof=> | Relačné menej ako Relačné menšie alebo rovné Relačný väčší ako Relačný väčší alebo rovný Porovnanie typov (iba objekty) | Zľava doprava |
8 | == != | Relačné sa rovná Relačné sa nerovná | Zľava doprava |
7 | & | Bitové AND | Zľava doprava |
6 | ^ | Bitové exkluzívne OR | Zľava doprava |
5 | | | Bitové vrátane ALEBO | Zľava doprava |
4 | && | Logické AND | Zľava doprava |
3 | || | Logické ALEBO | Zľava doprava |
2 | ? : | Ternárny podmienený | Zprava doľava |
1 | = += -= *= /= %= | Pridelenie Priradenie doplnku Priradenie odčítania Priradenie násobenia Zadanie divízie Priradenie modulu | Zprava doľava |
Poznámka: Čím väčšie číslo, tým vyššia priorita.
Príklad priority operátora Java
Poďme pochopiť prednosť operátora prostredníctvom príkladu. Zvážte nasledujúci výraz a hádajte odpoveď.
1 + 5 * 3
Možno si myslíte, že odpoveď bude 18 ale nie tak. Pretože operátor násobenia (*) má vyššiu prioritu ako operátor sčítania (+). Preto výraz najprv vyhodnotí 5*3 a potom vyhodnotí zostávajúci výraz, t.j. 1+15. Preto bude odpoveď znieť 16 .
Pozrime sa na ďalší príklad. Zvážte nasledujúci výraz.
x + y * z / k
Vo vyššie uvedenom výraze sa operácie * a / vykonávajú pred znakom + z dôvodu priority. y sa vynásobí z pred delením k kvôli asociativite.