logo

Java operátori elsőbbség

Ebben a részben megtanuljuk a operátor elsőbbség Java nyelven példákkal együtt.

karakterlánc és részkarakterlánc

Mi az operátori elsőbbség?

A operátori elsőbbség azt jelenti, hogy két kifejezés hogyan kapcsolódik egymáshoz. Egy kifejezésben meghatározza az operátorok operandusokkal való csoportosítását, és eldönti, hogyan értékelje ki a kifejezést.

Egy kifejezés megoldása során két dolgot kell szem előtt tartani, az első a elsőbbség a második pedig az asszociativitás .

Java operátori elsőbbség

Elsőbbség

A prioritás a prioritás a különböző típusú operátorok operandusaikkal történő csoportosításánál. Csak akkor van értelme, ha egy kifejezésnek több operátora van magasabb vagy alacsonyabb prioritással. Először a magasabb prioritású operátorokat értékeljük ki. Ha először az alacsonyabb prioritású operátorokat akarjuk kiértékelni, akkor az operandusokat zárójelek használatával kell csoportosítanunk, majd ki kell értékelnünk.

Az asszociativitás

Az asszociativitást követnünk kell, ha egy kifejezésnek kettőnél több azonos precedenciájú operátora van. Ilyen esetben egy kifejezést is meg lehet oldani balról jobbra vagy jobbról balra, Eszerint.

Java operátorok elsőbbségi táblázata

Az alábbi táblázat a Java-ban használt operátorok elsőbbségét és asszociativitását írja le.

Elsőbbség Operátor típus Az asszociativitás
tizenöt ()
[]
·
Zárójelek
Tömb alsó indexe
Tagválasztás
Balról jobbra
14 ++
--
Unáris utónövekmény
Unáris utócsökkentés
Jobbról balra
13 ++
--
+
-
!
~
(típus)
Unáris előnövekmény
Unáris előcsökkentés
Egyedülálló plusz
Egyedi mínusz
Egyedi logikai tagadás
Unáris bitenkénti kiegészítés
Unáris típusú öntvény
Jobbról balra
12 *
/
%
Szorzás
Osztály
Modulus
Balról jobbra
tizenegy +
-
Kiegészítés
Kivonás
Balról jobbra
10 <<
>>
>>>
Bitenkénti balra eltolás
Bitenkénti jobb eltolás jelkiterjesztéssel
Bitenkénti jobb eltolás nulla kiterjesztéssel
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
8 ==
!=
A relációs egyenlő
A relációs nem egyenlő
Balról jobbra
7 & Bitenként ÉS Balról jobbra
6 ^ Bitenkénti exkluzív VAGY Balról jobbra
5 | Bitenkénti bezáró VAGY Balról jobbra
4 && Logikus ÉS Balról jobbra
3 || Logikus VAGY Balról jobbra
2 ? : Terner feltételes Jobbról balra
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

Megjegyzés: Minél nagyobb a szám, annál nagyobb a prioritás.

Java operátori elsőbbségi példa

Értsük meg az operátor elsőbbségét egy példán keresztül. Fontolja meg a következő kifejezést, és találja ki a választ.

 1 + 5 * 3 

Lehet, hogy azt gondolja, hogy ez lesz a válasz 18 de nem úgy. Mivel a szorzás (*) operátornak nagyobb a prioritása, mint az összeadás (+) operátornak. Ezért a kifejezés először 5*3-at, majd a fennmaradó kifejezést, azaz 1+15-öt értékeli ki. Ezért a válasz az lesz 16 .

Lássunk egy másik példát. Tekintsük a következő kifejezést.

 x + y * z / k 

A fenti kifejezésben a * és / műveletek a + előtt kerülnek végrehajtásra az elsőbbség miatt. Az asszociativitás miatt y-t megszorozzuk z-vel, mielőtt elosztjuk k-val.