logo

Aukščiausia pirmenybė Java

Kai kalbame apie „Java“ pirmenybę, pirmiausia turime omenyje operatorių. „Java“ yra apibrėžtos tam tikros taisyklės, nurodančios tvarką, kuria įvertinami išraiškos operatoriai. Operatoriaus pirmenybė yra terminų grupės nustatymo sąvoka išraiškoje. Operatoriaus pirmenybė yra atsakinga už išraiškų įvertinimą. Į Java , skliausteliuose () ir Masyvo indeksas[] turi aukščiausią pirmenybę Java. Pavyzdžiui, sudėjimas ir atimtis turi didesnį pirmenybę nei poslinkio į kairę ir dešinę operatoriai.

Aukščiausia pirmenybė Java

Žemiau yra apibrėžta lentelė, kurios viršuje rodomas žemiausio prioriteto operatorius.

Pirmenybė operatorius Tipas Asociatyvumas
1) =
+=
-=
*=
/=
%=
Užduotis
Papildymo užduotis
Atimties užduotis
Daugybos užduotis
Padalinio pavedimas
Modulio užduotis
Iš dešinės į kairę
2) ? : Trečias sąlyginis Iš dešinės į kairę
3) || Logiška ARBA Iš kairės į dešinę
4) && Logiška IR Iš kairės į dešinę
5) | Bitai imtinai ARBA Iš kairės į dešinę
6) ^ Bitiškai išskirtinis ARBA Iš kairės į dešinę
7) & Bitiškai IR Iš kairės į dešinę
8) !=
==
Santykinis nelygu
Santykinis yra lygus
Iš kairės į dešinę
9) <
<=
>
>=
pavyzdys
Santykinis mažesnis nei
Santykinis mažesnis arba lygus
Santykinis didesnis nei
Santykinis didesnis arba lygus
Tipų palyginimas (tik objektai)
Iš kairės į dešinę
10) >>
<<
>>>
Bitų poslinkis į dešinę su ženklo plėtiniu
Bitų poslinkis į kairę
Bitų poslinkis į dešinę su nuliniu išplėtimu
Iš kairės į dešinę
vienuolika) -
+
Atimtis
Papildymas
Iš kairės į dešinę
12) *
/
%
Daugyba
Padalinys
Modulis
Iš kairės į dešinę
13) -
+
~
!
(tipas)
Vienetinis minusas
Vienetinis pliusas
Vienareikšmis bitų papildymas
Uniras loginis neigimas
Unary typecast
Iš dešinės į kairę
14) ++
--
Uniras postprieaugis
Unary post-decrement
Iš dešinės į kairę
penkiolika) ·
()
[]
Taško operatorius
Skliausteliuose
Masyvo indeksas
Iš kairės į dešinę

Pirmumo tvarka

Kai du operatoriai dalijasi vienu operandu, aukščiausią pirmenybę turintis operatorius eina pirmas. Pavyzdžiui, x + y * z traktuojamas kaip x + (y * z), o x * y + z traktuojamas kaip (x * y) + z, nes * operatorius turi didžiausią pirmenybę, palyginti su + operatoriumi.

java null tikrinimas

Asociatyvumas

Asociatyvus yra sąvoka, susijusi su operatoriais, taikomais, kai išraiškoje yra du operatoriai, turintys tą pačią pirmenybę. Asociatyvumo samprata labai padeda išeiti iš šios situacijos. Tarkime, kad turime išraišką a + b - c (+ ir – operatoriai turi tą patį prioritetą) , ir ši išraiška bus traktuojama kaip (a + (b - c)) nes šie operatoriai yra asociatyvūs iš dešinės į kairę. Kita vertus, a+++--b+c++ bus traktuojamas kaip ((a++)+((--b)+(c++))) nes unariniai post-increment ir dekremento operatoriai yra iš dešinės į kairę-asociatyvūs.

Toliau pateikiamas pavyzdys, kaip suprasti, kaip išraiška vertinama naudojant pirmumo tvarką ir asociatyvumą?

Išraiška: x = 4 / 2 + 8 * 4 - ( 5 + 2 ) % 3

Sprendimas:

1) Aukščiau pateiktoje išraiškoje didžiausias pirmenybės operatorius yra () . Taigi, skliaustas eina pirmas ir pirmiausia apskaičiuojamas.

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

2) dabar, /, * ir % operatoriai turi tą patį pirmumą ir aukščiausią nuo + ir - Čia mes naudojame asociatyvumo koncepciją joms išspręsti. Šių operatorių asociacijos yra iš kairės į dešinę. Taigi, / operatorius eina pirmas ir tada * ir % tuo pačiu metu.

x = 2 + 8 * 4 - 7 % 3

x = 2 + 32 – 7 % 3

apvali matematika java

x = 2 + 32 - 1

3) dabar, + ir - operatoriai taip pat turi tą pačią pirmenybę ir šių operatorių asociatyvumą, kad būtų išvengta dešinės. Taigi, + operatorius eis pirmas, o tada - eisiu.

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

Išvestis

mergesort java
Aukščiausia pirmenybė Java