„Java“ operatoriaus pirmenybė

Operatoriaus pirmenybė nustato eilės tvarką, kuria vertinami išraiškos operatoriai.

Prieš pradėdami skaityti šį straipsnį, turėtumėte turėti pagrindinių „Java“ operatorių žinių.

Pažvelkite į toliau pateiktą teiginį:

 int myInt = 12 - 4 * 2;

Kokia bus „myInt“ vertė? Ar tai bus (12 - 4)*2, tai yra 16? Arba bus 12 - (4 * 2), tai yra 4?

Kai du operatoriai turi bendrą operandą, 4šiuo atveju pirmiausia valdomas didžiausio prioriteto operatorius.

„Java“ pirmenybė *yra didesnė nei -. Taigi dauginimas atliekamas prieš atimant, o myInt vertė bus 4.

Operatoriaus pirmenybės lentelė

Žemiau esančioje lentelėje pateikiama „Java“ operatorių pirmenybė; aukščiau jis rodomas lentelėje, tuo didesnis jo prioritetas.

„Java“ operatoriaus pirmenybė
Operatoriai Pirmenybė
postfix prieaugis ir sumažėjimas ++ --
priešdėlio prieaugis ir nuosmukis ir unarinis ++ -- + - ~ !
dauginamasis * / %
priedas + -
pamainą << >> >>>
santykinis < > <= >= instanceof
lygybė == !=
bitų IR &
bitų išimtinis ARBA ^
bitų imtinai ARBA |
logiška IR &&
logiška ARBA ||
trikampis ? :
užduotis = += -= *= /= %=
&= ^= |= <<= >>= >>>=

Pavyzdys: operatoriaus pirmenybė

 class Precedence ( public static void main(String() args) ( int a = 10, b = 5, c = 1, result; result = a-++c-++b; System.out.println(result); ) )

Išvestis :

 2

Priešdėlio operatoriaus pirmenybė ++yra didesnė nei -atimties operatoriaus. Taigi,

 rezultatas = a - ++ c - ++ b;

yra lygiavertis

 rezultatas = a - (++ c) - (++ b);

Kai kalbate su keliais operatoriais ir operandais vienoje išraiškoje, aiškumo dėlei galite naudoti skliaustus, kaip nurodyta aukščiau pateiktame pavyzdyje. Pirmiausia įvertinama skliaustų išraiška.

Operatorių asociacija „Java“

Jei išraiška turi du panašaus prioriteto operatorius, išraiška vertinama pagal jos asociatyvumą (arba iš kairės į dešinę, arba iš dešinės į kairę). Paimkime pavyzdį.

 a = b = c;

Čia c reikšmė priskiriama kintamajam b. Tada b reikšmė priskiriama kintamajam a. Kodėl? Taip yra todėl, kad = operatoriaus asociatyvumas yra iš dešinės į kairę.

Žemiau esančioje lentelėje parodytas „Java“ operatorių asociatyvumas kartu su jų asociatyvumu.

„Java“ operatoriaus pirmenybė ir asociatyvumas
Operatoriai Pirmenybė Asociatyvumas
postfix prieaugis ir sumažėjimas ++ -- iš kairės į dešinę
priešdėlio prieaugis ir nuosmukis ir unarinis ++ -- + - ~ ! iš dešinės į kairę
dauginamasis * / % iš kairės į dešinę
priedas + - iš kairės į dešinę
pamainą << >> >>> iš kairės į dešinę
santykinis < > <= >= instanceof iš kairės į dešinę
lygybė == != iš kairės į dešinę
bitų IR & iš kairės į dešinę
bitų išimtinis ARBA ^ iš kairės į dešinę
bitų imtinai ARBA | iš kairės į dešinę
logiška IR && iš kairės į dešinę
logiška ARBA || iš kairės į dešinę
trikampis ? : iš dešinės į kairę
užduotis = += -= *= /= %=
&= ^= |= <<= >>= >>>=
iš dešinės į kairę

Čia nereikia visko įsiminti. Dažniausiai operatorių prioritetas ir asociatyvumas savaime turi prasmę. Jei kyla abejonių, visada galite grįžti į šį straipsnį. Be to, galite naudoti skliaustus, jei manote, kad tai lengviau supranta jūsų kodą.

Įdomios straipsniai...