logo

A legmagasabb prioritás a Java nyelven

Amikor a Java elsőbbségéről beszélünk, az operátor jut először eszünkbe. A Java-ban meghatározott szabályok határozzák meg a kifejezés operátorainak kiértékelési sorrendjét. Üzemeltetői elsőbbség egy kifejezésben szereplő kifejezések csoportjának meghatározására szolgáló fogalom. Az operátori elsőbbség felelős a kifejezések kiértékeléséért. Ban ben Jáva , zárójel() és Tömb alsó indexe[] a legmagasabb prioritású a Java nyelven. Például az összeadás és kivonás magasabb prioritású, mint a balra eltolás és a jobbra eltolás operátorok.

A legmagasabb prioritás a Java nyelven

Az alábbiakban egy táblázat látható, amelyben a legalacsonyabb prioritású operátor jelenik meg a tetején.

Elsőbbség Operátor típus Az asszociativitás
1) =
+=
-=
*=
/=
%=
Feladat
Kiegészítési feladat
Kivonás hozzárendelés
Szorzási feladat
Osztály beosztás
Modulus hozzárendelés
Jobbról balra
2) ? : Terner feltételes Jobbról balra
3) || Logikus VAGY Balról jobbra
4) && Logikus ÉS Balról jobbra
5) | Bitenkénti bezáró VAGY Balról jobbra
6) ^ Bitenkénti exkluzív VAGY Balról jobbra
7) & Bitenként ÉS Balról jobbra
8) !=
==
A relációs nem egyenlő
A relációs egyenlő
Balról jobbra
9) <
<=
>
>=
Például az
Relációs kevesebb, mint
Relációs kisebb vagy egyenlő
Relációs nagyobb, mint
Relációs nagyobb vagy egyenlő
Típus-összehasonlítás (csak objektumok)
Balról jobbra
10) >>
<<
>>>
Bitenkénti jobbra eltolás jelkiterjesztéssel
Bitenkénti balra eltolás
Bitenkénti jobb eltolás nulla kiterjesztéssel
Balról jobbra
tizenegy) -
+
Kivonás
Kiegészítés
Balról jobbra
12) *
/
%
Szorzás
Osztály
Modulus
Balról jobbra
13) -
+
~
!
( típus)
Egyedi mínusz
Egyedülálló plusz
Unáris bitenkénti kiegészítés
Egyedi logikai tagadás
Unary typecast
Jobbról balra
14) ++
--
Unáris utónövekmény
Unáris utócsökkentés
Jobbról balra
tizenöt) ·
()
[]
Pont operátor
Zárójelek
Tömb alsó indexe
Balról jobbra

Elsőbbségi sorrend

Ha két operátor osztozik egy operanduson, akkor a legmagasabb prioritású operátor kerül először. Például az x + y * z mint x + (y * z), míg az x * y + z mint (x * y) + z, mivel a * operátornak van a legmagasabb prioritása a + operátorhoz képest.

singleton design

Az asszociativitás

Az asszociatív egy olyan fogalom, amely azokra az operátorokra vonatkozik, amelyeket akkor alkalmaznak, ha egy kifejezésben két azonos prioritású operátor szerepel. Az asszociativitás koncepciója nagyon hasznos, hogy kilépjünk ebből a helyzetből. Tegyük fel, hogy van egy a + b - c kifejezésünk (a + és - operátorok prioritása azonos) , és ezt a kifejezést a rendszer így kezeli (a + (b - c)) mert ezek az operátorok jobbról balra asszociatívak. Másrészt az a+++--b+c++ úgy lesz kezelve ((a++)+((--b)+(c++))) mert az unáris utónövekmény és dekrement operátorok jobbról balra asszociatívak.

Az alábbiakban egy példát definiálunk, hogy megértsük, hogyan kerül kiértékelésre egy kifejezés az elsőbbségi sorrend és az asszociativitás használatával?

Kifejezés: x = 4/2 + 8 * 4 - ( 5+ 2 ) % 3

Megoldás:

1) A fenti kifejezésben a legmagasabb prioritású operátor az () . Tehát a zárójel megy először, és először számol.

karakterlánc átalakítása int-re

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

2) Most, /, * és % operátorok ugyanazt a prioritást és a legmagasabb a + és - Itt az asszociativitás fogalmát használjuk ezek megoldására. Ezeknek az operátoroknak az asszociációja balról jobbra halad. Így, / az operátor először, majd utána megy * és % egyidejűleg.

x = 2 + 8 * 4 - 7 % 3

x = 2 + 32 - 7 % 3

x = 2 + 32 - 1

3) Most, + és - mindkét operátornak ugyanaz a prioritása, és ezeknek az operátoroknak az asszociativitása, nehogy jobbra. Így, + a kezelő először, majd csak utána - fog menni.

xampp alternatíva

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

Kimenet

A legmagasabb prioritás a Java nyelven