Java-operaattorin etusija

Operaattorin etusija määrittää järjestyksen, jossa lausekkeen operaattorit arvioidaan.

Ennen kuin aloitat tämän artikkelin lukemisen, sinulla on oltava perustiedot Java-operaattoreista.

Katsokaa nyt alla olevaa lausetta:

 int myInt = 12 - 4 * 2;

Mikä on myIntin arvo? Onko se (12 - 4)*2, eli 16? Tai se on 12 - (4 * 2), eli 4?

Kun kahdella operaattorilla on yhteinen operandi, 4tällöin ensin käytetään operaattoria, jolla on korkein etusija.

Javassa etusija *on korkeampi kuin -. Näin ollen kertolasku suoritetaan ennen vähennystä ja myInt: n arvo on 4.

Operaattorin prioriteettitaulukko

Seuraavassa taulukossa luetellaan Java-operaattoreiden etusija; korkeampi se näkyy taulukossa, sitä korkeampi sen etusija.

Java-operaattorin etusija
Operaattorit Ensisijaisuus
jälkikorjauksen lisäys ja vähennys ++ --
etuliitteen lisäys ja vähennys sekä unary ++ -- + - ~ !
kerrannaisena * / %
lisäaine + -
siirtää << >> >>>
suhteellinen < > <= >= instanceof
tasa-arvo == !=
bittiä JA &
bittikohtaisesti TAI ^
bittikohtaisesti TAI |
looginen JA &&
looginen TAI ||
kolmipäiväinen ? :
tehtävä = += -= *= /= %=
&= ^= |= <<= >>= >>>=

Esimerkki: Operaattorin etusija

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

Tuotos :

 2

Operaattorin etuliite ++on korkeampi kuin -vähennysoperaattorin. Siten,

 tulos = a - ++ c - ++ b;

vastaa

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

Kun käsittelet useita operaattoreita ja operandeja yhdessä lausekkeessa, voit käyttää selkeyttä varten sulkeita, kuten edellisessä esimerkissä. Suluissa oleva ilmaisu arvioidaan ensin.

Java-operaattoreiden assosiatiivisuus

Jos lausekkeella on kaksi operaattoria, joilla on samanlainen etusija, lauseke arvioidaan sen assosiatiivisuuden mukaan (joko vasemmalta oikealle tai oikealta vasemmalle). Otetaan esimerkki.

 a = b = c;

Tässä c-arvo osoitetaan muuttujalle b. Sitten b: n arvo määritetään muuttujalle a. Miksi? Se johtuu siitä, että = operaattorin assosiatiivisuus on oikealta vasemmalle.

Alla olevassa taulukossa on esitetty Java-operaattoreiden assosiatiivisuus yhdessä niiden assosiatiivisuuden kanssa.

Java-operaattorin etusija ja assosiatiivisuus
Operaattorit Ensisijaisuus Assosiatiivisuus
jälkikorjauksen lisäys ja vähennys ++ -- vasemmalta oikealle
etuliitteen lisäys ja vähennys sekä unary ++ -- + - ~ ! oikealta vasemmalle
kerrannaisena * / % vasemmalta oikealle
lisäaine + - vasemmalta oikealle
siirtää << >> >>> vasemmalta oikealle
suhteellinen < > <= >= instanceof vasemmalta oikealle
tasa-arvo == != vasemmalta oikealle
bittiä JA & vasemmalta oikealle
bittikohtaisesti TAI ^ vasemmalta oikealle
bittikohtaisesti TAI | vasemmalta oikealle
looginen JA && vasemmalta oikealle
looginen TAI || vasemmalta oikealle
kolmipäiväinen ? : oikealta vasemmalle
tehtävä = += -= *= /= %=
&= ^= |= <<= >>= >>>=
oikealta vasemmalle

Sinun ei tarvitse muistaa kaikkea täällä. Suurimman osan ajasta operaattoreiden etusija ja assosiatiivisuus ovat itsessään järkeviä. Voit aina palata tähän artikkeliin, jos olet epävarma. Voit myös käyttää sulkeita, jos luulet sen helpottavan koodiasi.

Mielenkiintoisia artikkeleita...