Java-operaatori ülimuslikkus

Lang L: none (table-of-contents)

Operaatori ülimuslikkus määrab avaldise operaatorite hindamise järjekorra.

Enne selle artikli lugema asumist peaksid teil olema Java-operaatorite põhiteadmised.

Nüüd vaadake järgmist väidet:

 int myInt = 12 - 4 * 2;

Mis saab olema myInt väärtus? Kas see on (12 - 4)*2, see tähendab 16? Või saab 12 - (4 * 2), see on 4,?

Kui kahel operaatoril on ühine operand, 4juhitakse sel juhul kõigepealt suurima prioriteediga operaatorit.

Java-s *on paremusjärjestus kui -. Seega korrutatakse enne lahutamist ja myInt väärtus on 4.

Operaatori tähtsuse tabel

Allolevas tabelis on loetletud Java-operaatorite paremusjärjestus; mida kõrgem see tabelis ilmub, seda suurem on selle tähtsus.

Java-operaatori ülimuslikkus
Operaatorid Ülimuslikkus
postfixi juurdekasv ja vähenemine ++ --
eesliide juurdekasv ja kahanemine ning unaarne ++ -- + - ~ !
korrutav * / %
lisaaine + -
vahetustega << >> >>>
suhteline < > <= >= instanceof
võrdõiguslikkus == !=
bitipidi JA &
bitiselt eksklusiivne VÕI ^
bittide kaupa VÕI |
loogiline JA &&
loogiline VÕI ||
kolmepoolne ? :
ülesanne = += -= *= /= %=
&= ^= |= <<= >>= >>>=

Näide: Operaatori ülimuslikkus

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

Väljund :

 2

Eesliite operaatori tähtsus ++on suurem kui -lahutamise operaatoril. Seega

 tulemus = a - ++ c - ++ b;

on samaväärne

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

Kui käsitletakse mitu operaatorit ja operandi ühes avaldises, saate selguse huvides kasutada sulge, nagu ülaltoodud näites. Kõigepealt hinnatakse sulgudes olevat väljendit.

Operaatorite assotsiatiivsus Java-s

Kui avaldisel on kaks sarnase tähtsusega operaatorit, hinnatakse avaldist selle assotsiatiivsuse järgi (kas vasakult paremale või paremalt vasakule). Võtame näite.

 a = b = c;

Siin omistatakse muutujale b väärtus c. Siis määratakse muutuja a väärtus b. Miks? Sellepärast, et operaatori = assotsiatiivsus on paremalt vasakule.

Allpool olev tabel näitab Java-operaatorite assotsiatiivsust koos nende assotsiatiivsusega.

Java-operaatori ülimuslikkus ja assotsiatiivsus
Operaatorid Ülimuslikkus Assotsiatiivsus
postfixi juurdekasv ja vähenemine ++ -- vasakult paremale
eesliide juurdekasv ja kahanemine ning unaarne ++ -- + - ~ ! paremalt vasakule
korrutav * / % vasakult paremale
lisaaine + - vasakult paremale
vahetustega << >> >>> vasakult paremale
suhteline < > <= >= instanceof vasakult paremale
võrdõiguslikkus == != vasakult paremale
bitipidi JA & vasakult paremale
bitiselt eksklusiivne VÕI ^ vasakult paremale
bittide kaupa VÕI | vasakult paremale
loogiline JA && vasakult paremale
loogiline VÕI || vasakult paremale
kolmepoolne ? : paremalt vasakule
ülesanne = += -= *= /= %=
&= ^= |= <<= >>= >>>=
paremalt vasakule

Siin pole vaja kõike meelde jätta. Enamasti on operaatorite ülimuslikkus ja assotsiatiivsus iseenesest mõistlik. Kahtluse korral võite alati selle artikli juurde tagasi pöörduda. Samuti võite kasutada sulgusid, kui arvate, et see muudab teie koodi hõlpsamini mõistetavaks.

Huvitavad Artiklid...