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 .
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.