Když mluvíme o přednosti v Javě, na prvním místě je operátor. V Javě jsou definována určitá pravidla, která určují pořadí, ve kterém jsou operátory ve výrazu vyhodnocovány. Přednost operátora je koncept určování skupiny termínů ve výrazu. Priorita operátoru je zodpovědná za vyhodnocení výrazů. v Jáva , závorky() a Index pole[] mají nejvyšší prioritu v Javě. Například sčítání a odčítání mají vyšší prioritu než operátory posunu vlevo a vpravo.
Níže je definována tabulka, ve které se operátor s nejnižší prioritou zobrazuje v horní části.
Přednost | Operátor | Typ | Asociativnost |
---|---|---|---|
1) | = += -= *= /= %= | Úkol Zadání sčítání Odečítání zadání Přiřazení násobení Zadání divize Přiřazení modulu | Zprava doleva |
2) | ? : | Ternární podmíněný | Zprava doleva |
3) | || | Logické NEBO | Zleva do prava |
4) | && | Logické AND | Zleva do prava |
5) | | | Bitově včetně OR | Zleva do prava |
6) | ^ | Bitově exkluzivní OR | Zleva do prava |
7) | & | Bitové AND | Zleva do prava |
8) | != == | Relační se nerovná Relační se rovná | Zleva do prava |
9) | < <= > >= instanceof=> | Relační méně než Relační menší nebo rovno Relační větší než Relační větší nebo rovno Porovnání typů (pouze objekty) | Zleva do prava |
10) | >> << >>> | Bitový posun doprava s rozšířením znaménka Bitový posun doleva Bitový posun doprava s nulovým rozšířením | Zleva do prava |
jedenáct) | - + | Odčítání Přidání | Zleva do prava |
12) | * / % | Násobení Divize Modul | Zleva do prava |
13) | - + ~ ! (typ) | Unární mínus Unární plus Unární bitový doplněk Unární logická negace Unární typové obsazení | Zprava doleva |
14) | ++ -- | Unární post-přírůstek Unární post-dekrementace | Zprava doleva |
patnáct) | · () [] | Operátor tečky Závorky Pole dolní index | Zleva do prava |
Přednostní pořadí
Když dva operátoři sdílejí jeden operand, operátor s nejvyšší prioritou je na prvním místě. Například x + y * z je považováno za x + (y * z), zatímco x * y + z je považováno za (x * y) + z, protože operátor * má nejvyšší prioritu ve srovnání s operátorem +.
čtení java csv
Asociativnost
Asociativní je koncept související s operátory, které se používají, když do výrazu přicházejí dva operátory se stejnou prioritou. Koncepce asociativity je velmi užitečná, když vycházíme z této situace. Předpokládejme, že máme výraz a + b - c (operátory + a - mají stejnou prioritu) , a tento výraz bude považován za (a + (b - c)) protože tyto operátory jsou asociativní zprava doleva. Na druhou stranu, a+++--b+c++ bude považováno za ((a++)+((--b)+(c++))) protože unární operátory post-inkrementace a dekrementace jsou asociativní zprava doleva.
Níže je definován příklad, abyste pochopili, jak je výraz vyhodnocen pomocí pořadí priority a asociativnosti?
Výraz: x = 4 / 2 + 8 * 4 - ( 5 + 2 ) % 3
Řešení:
1) Ve výše uvedeném výrazu je operátor s nejvyšší prioritou () . Takže závorka jde první a počítá jako první.
x = 4 / 2 + 8 * 4 - 7 % 3
2) Nyní, /, * a % operátory mají stejnou prioritu a nejvyšší z + a - Zde k jejich řešení používáme koncept asociativity. Asociativy těchto operátorů jsou zleva doprava. Tak, / operátor jde první a pak * a % zároveň.
x = 2 + 8 * 4 - 7 % 3
x = 2 + 32 - 7 % 3
formátování řetězců java
x = 2 + 32 - 1
3) Nyní, + a - oba operátory mají také stejnou prioritu a asociativitu těchto operátorů napravo. Tak, + operátor půjde první a pak - půjde.
x = 34-1
x = 33
HighestPrecedence.java
//import classes import java.util.*; //creating HighestPrecedence class to evaluate the expression public class HighestPrecedence { //main() method starts public static void main(String[] args) { //initialize variables with default values int x = 2; int y = 5; int z = 12; //calculating exp1, exp2, and exp3 int exp1 = x +(z/x+(z%y)*(z-x)^2); int exp2 = z/x+y*x-(y+x)%z; int exp3 = 4/2+8*4-(5+2)%3; //printing the result System.out.println(exp1); System.out.println(exp2); System.out.println(exp3); } }
Výstup
abs c kód