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.