logo

Nejvyšší priorita v Javě

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.

Nejvyšší priorita v Javě

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
Nejvyšší priorita v Javě