logo

Augstākā prioritāte Java

Kad mēs runājam par Java prioritāti, vispirms prātā nāk operators. Java ir definēti noteikti noteikumi, lai norādītu secību, kādā tiek novērtēti izteiksmes operatori. Operatora prioritāte ir jēdziens terminu grupas noteikšanai izteiksmē. Operatora prioritāte ir atbildīga par izteiksmju novērtēšanu. In Java , iekavas () un Masīva apakšindekss[] ir augstākā prioritāte Java. Piemēram, saskaitīšanai un atņemšanai ir augstāka prioritāte nekā maiņas pa kreisi un pa labi operatoriem.

Augstākā prioritāte Java

Zemāk ir definēta tabula, kurā zemākās prioritātes operators tiek rādīts tās augšpusē.

Priekšroka Operators Tips Asociativitāte
1) =
+=
-=
*=
/=
%=
Piešķiršana
Papildinājuma uzdevums
Atņemšanas uzdevums
Reizināšanas uzdevums
Divīzijas uzdevums
Moduļa uzdevums
No labās uz kreiso
2) ? : Trīskāršs nosacījums No labās uz kreiso
3) || Loģiski VAI No kreisās uz labo
4) && Loģiski UN No kreisās uz labo
5) | Ieskaitot bitus VAI No kreisās uz labo
6) ^ Bitu ekskluzīvs VAI No kreisās uz labo
7) & Bitu UN No kreisās uz labo
8) !=
==
Relācijas nav vienādas ar
Relācijas ir vienādas ar
No kreisās uz labo
9) <
<=
>
>=
instanceof
Relāciju mazāk nekā
Relācijas ir mazākas par vai vienādas
Relāciju lielāks par
Relācijas ir lielākas vai vienādas
Veidu salīdzinājums (tikai objekti)
No kreisās uz labo
10) >>
<<
>>>
Bitu pa labi nobīde ar zīmes paplašinājumu
Bitu pa kreisi nobīde
Bitu pa labi nobīde ar nulles pagarinājumu
No kreisās uz labo
vienpadsmit) -
+
Atņemšana
Papildinājums
No kreisās uz labo
12) *
/
%
Reizināšana
Divīzija
Modulus
No kreisās uz labo
13) -
+
~
!
(tips)
Vienots mīnuss
Vienots pluss
Unārs bitu papildinājums
Unārs loģisks noliegums
Unāra tipa apraide
No labās uz kreiso
14) ++
--
Unārs pēcpieaugums
Unārs pēcsamazinājums
No labās uz kreiso
piecpadsmit) ·
()
[]
Punktu operators
Iekavas
Masīva apakšindekss
No kreisās uz labo

Prioritātes secība

Ja divi operatori koplieto vienu operandu, pirmais ir operators ar augstāko prioritāti. Piemēram, x + y * z tiek uzskatīts par x + (y * z), savukārt x * y + z tiek uzskatīts par (x * y) + z, jo operatoram * ir visaugstākā prioritāte salīdzinājumā ar operatoru +.

divi pret vienu multipleksoru

Asociativitāte

Asociatīvais ir jēdziens, kas saistīts ar operatoriem, kas tiek lietoti, ja izteiksmē ir divi operatori ar vienādu prioritāti. Asociatīvās koncepcija ir ļoti noderīga, lai izietu no šīs situācijas. Pieņemsim, ka mums ir izteiksme a + b - c (+ un - operatoriem ir vienāda prioritāte) , un šī izteiksme tiks uzskatīta par (a + (b - c)) jo šie operatori ir asociatīvi no labās puses uz kreiso. No otras puses, a+++--b+c++ tiks uzskatīts par ((a++)+((--b)+(c++))) jo unārie post-increment un decrement operatori ir no labās puses uz kreiso asociatīvo.

Tālāk ir definēts piemērs, lai saprastu, kā izteiksme tiek novērtēta, izmantojot prioritātes secību un asociativitāti?

Izteiksme: x = 4 / 2 + 8 * 4 - ( 5 + 2 ) % 3

Risinājums:

1) Iepriekš minētajā izteiksmē augstākās prioritātes operators ir () . Tātad, vispirms ir iekava un vispirms tiek aprēķināts.

pasūtījuma koka šķērsošana

x = 4 / 2 + 8 * 4 - 7 % 3

2) Tagad, /, * un % operatoriem ir tāda pati prioritāte un augstākais no + un - Šeit mēs izmantojam asociativitātes koncepciju, lai tās atrisinātu. Šo operatoru asociācijas ir no kreisās uz labo pusi. Tātad, / operators dodas vispirms un tad * un % vienlaikus.

x = 2 + 8 * 4 - 7 % 3

x = 2 + 32 - 7 % 3

x = 2 + 32 - 1

3) Tagad, + un - operatoriem abiem arī ir vienāda prioritāte un šo operatoru asociativitāte pret labo pusi. Tātad, + operators dosies vispirms un pēc tam - ies.

attēlu izlīdzināšana css

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); } } 

Izvade

Augstākā prioritāte Java