Tarkastellaan vähän tarkemmin sijoituskäskyä. Sijoituskäskyssä on vasemmalla jonkun muuttujan nimi, sitten =-merkki ja tämän oikealla puolella lauseke, esimerkiksi
double keskiarvo; keskiarvo = (4.5 + 8.7) / 2.0;Sijoituskäsky suoritetaan aina niin, että ensin lasketaan oikealla puolella olevan lausekkeen arvo ja saatu tulos sijoitetaan vasemmalla puolella olevan muuttujan arvoksi.
Laskettavassa lausekkeessa voi esiintyä muuttujien nimiä. Tällöin lausekkeen arvoa laskettaessa käytetään näiden muuttujien arvoja, esimerkiksi
int fahrenheit, celsius; fahrenheit = 100; celsius = 5 * (fahrenheit - 32) / 9;
Sijoituskäskyn vasemmalla puolella olevalla muuttujalla voi olla arvo jo ennen sijoituskäskyä. Tällöin vanha arvo häviää täysin sijoituskäskyä suoritettaessa, esimerkkiksi
int fahrenheit, celsius; celsius = 25; fahrenheit = 100; celsius = 5 * (fahrenheit - 32) / 9;
Muuttujan celsius arvo on ennen viimeisen käskyn suorittamista 25, mutta sen suorittamisen jälkeen 37.
Muuttujan vanhaa arvoa voidaan käyttää myös hyväksi saman muuttujan uutta arvoa laskettaessa, esimerkiksi
int luku; luku = 5; luku = luku + 7;
Jälkimmäinen sijoituskäsky suoritetaan seuraavasti: lasketaan ensin oikealla puolella olevan lausekkeen arvo. Otetaan siis muuttujan luku arvo (5), lisätään siihen 7, jolloin lausekkeen arvoksi saadaan 12. Saatu arvo sijoitetaan muuttujan luku uudeksi arvoksi. Muuttujan luku arvo on siis ennen käskyn suorittamista 5 ja käskyn suorittamisen jälkeen 12. Käsky voi tuntua aluksi hämäävältä, mutta on muistettava, että merkki = tarkoittaa todellakin sijoitusta, eikä sillä ole Java-kielessä mitään tekemistä yhtäsuuruuden kanssa.
Sijoituskäskyt, joissa muuttujan vanhaa arvoa käytetään hyväksi uutta arvoa laskettaessa ovat niin yleisiä, että osalle niistä on sovittu lyhennysmerkintä. Sijoitus
luku += 7;tarkoittaa samaa kuin sijoituskäsky
luku = luku + 7;
Vastaavasti toimivat merkinnät -=, *= ja /=.
Myös sellaisille sijoituskäskyille, jotka kasvattavat tai vähentävät muuttujan arvoa yhdellä, on lyhennysmerkinnät:
i++;ja
++i;merkitsevät samaa kuin
i = i + 1;
Vastaavasti käskyt
i--;ja
--i;merkitsevät samaa kuin
i = i - 1;
Merkinnöillä i++ ja ++i (vastaavasti i--
ja --i
)
ei ole eroa silloin,
kun ne esiintyvät käskyssä yksinään. Sen sijaan niiden vaikutukset
poikkeavat toisistaan silloin, jos ne
esiintyvät suuremman lausekkeen osana. Tästä asiasta esitetään tarkempaa
tietoa
kurssilla myöhemmin.