|
|
3. Tiedon käsittely
Java sisältää monenlaisia operaattoreita tiedon käsittelyyn,
vertailuun ja laskutoimitusten suorittamiseen. Eri tyyppiset
operaattorit voidaan jakaa viiteen eri kategoriaan, jotka ovat :
Javan sisältämät aritmeettiset operaattorit kaikille kokonais-ja liukuluvuille ovat :
Operaattorit '++' ja '--' voidaan suorittaa joko alkuliitteenä tai loppuliitteenä, jolloin arvon lisääminen tai vähentäminen tapahtuu joko ennen tai jälkeen varsinaisen arvon muuttumista. Aritmeettisia operaattoreita voidaan myäs yhdistellä sijoitusoperaattoreihin, jolloin sekä sijoitus että laskuoperaatio voidaan suorittaa yhdellä varsinaisella operaattorilla. Näitä yhdistelmäoperaattoreita tarkastellaan tarkemmin sijoitusoperaattoreiden osiossa. Esimerkki : Aritmeettisten operaattoreiden käyttö.
//Esitellään kokonaislukumuuttujat joille operaatiot suoritetaan.
int luku1 = 1;
int luku2 = 50;
int luku3 = 10;
//Suoritetaan aritmeettisia operaatioita muuttujille
luku1 = luku1 + luku2; // --> luku1 = 1 + 50 = 51
luku1 = luku1 - luku3; // --> luku1 = 51 - 10 = 41
luku1 = luku1 + (luku2 * 10); // --> luku1 = 41 + (50 * 10) = 541
luku1++; // --> luku1 = 541+1
luku1 = luku1 / 2; // --> luku1 = 542 / 2 = 271
luku2 = luku2 % luku3; // --> luku2 = 50 % (jakojäännös) 10 = 0
//Lisäys ja vähennysoperaattorit ++ ja -- etuliitte-ja jälkiliite versioina
luku1++;
++luku1;
Javan sisältämä luokka math pitää sisällään lisää aritmeettisia operaatioita kuten neliöjuuri-ja eksponenttifunktiot. Lisätietoa ja tarkemmat kuvaukset luokan sisältämistä aritmeettisista operaattoreista voi etsiä sivulta : Java sisältää varsinaisesti vain yhden tavalisen sijoitusoperaattorin ('='), muut sijoitusoperaattorit ovat ns. yhdistelmäoperaattoreita joissa yhdistyvät sijoitusoperaattori ja jokin toinen operaattori, kuten aritmeettinen operaattori tai looginen operaattori. Sijoitusoperaattoreiden avulla voidaan sijoittaa esimerkiksi arvo muuttujalle, sijoittaa muuttujan arvo toiseenmuuttujaan tai tallentaa jonkin operaation tulos tiettyyn muuttujaan. Luvun lopussa annetaan tarkempia esimerkkejä sijoitusoperaattoreiden käytöstä. Javan tukemat sijoitus-ja yhdistelmäoperaattorit ovat :
Bittiyhdistelmäoperaattorit :
Ensimmäisenä luetellut aritmeettiset yhdistelmäoperaatiot ovat, kuten kuvauksestakin käy ilmi, lähinnä lyhyempi tapa kirjoittaa varsinainen aritmeettinen lause ja siihen liittyvä sijoitusoperaattori. Bittioperaattoreihin emme tässä perustason oppaassa perehdy sen tarkemmin. Esimerkki : Sijoitus-ja yhdistelmäoperaattoreiden käyttö
//Esitellään kokonaislukumuuttujat joille operaatiot suoritetaan.
//esittelyssä nähdään myös normaali sijoitusoperaatio, jossa
//esitellylle kokonaisluvulle sijoitetaan alkuarvo.
int luku1 = 1;
int luku2 = 5;
int luku3 = 3;
//Suoritetaan sijoitusoperaatioita muuttujille
luku1 += luku2; // luku1 = luku 1 + luku2
luku1 -= luku3; // luku1 = luku1 - luku3
luku1 *= luku2; // luku1 = luku1 * luku2
luku1 /= 2; // luku1 = luku1 / luku2
luku2 %= luku3; //luku2 = luku2 % luku3
Vertailuoperaattorit tutkivat kahden arvon välistä suhdetta, ja palauttaa operaattorista riippuen joko 'tosi' tai 'epätosi'. Esimerkiksi operaattori '!=' palauttaa negatiivisen tuloksen jos kaksi vertailtavaa arvoa ovat yhtä suuria. Relaatio-operaattoreita käytetään yleisimmin vertailuoperaattoreiden kanssa, kun halutaan muodostaa monipuolisempia ehtolausekkeita tai yhdistellä eri lauseiden ehtoja relaation avulla. Javan tukemat vertailuoperaattorit ja relaatio-operaattorit ovat : Vertailuoperaattorit
Relaatio-operaattorit
Jälkimmäisenä esitellyillä relaatio-operaattoreilla voidaan käsitellä myös bittejä loogisilla operaatioilla (bitwise AND / OR / NOT / XOR). Vertailuoperaattoreiden ja relaatio-operaattoreiden yhdistelmillä voidaan myös luoda hyvinkin monimutkaisia ehtolausekkeita ohjelman ohjaamiseksi ja tiedon vertailemiseksi. Esimerkki : vertailu-ja relaatio-operaattoreiden käyttö
//Muutamia esimerkkejä ehtolauseista ja ehtojen
//yhdistelemisestä loogisten operandien avulla
if (a <= b) //Jos a on pienempi tai yhtäsuuri kuin b
a = 1;
if (a > b) //Jos a on suurempi kuin b
b = 1337;
if (luku == luku2) //Jos luku on yhtäsuuri kuin luku2
doSomethingFun();
if (kissa != koira) //Jos kissa on erisuuri kuin koira
doMeow();
if (a & b) //Jos a ja b ovat tosia
if (a | b) //Jos a tai b on tosi
if (!a) //Jos a ei ole tosi
if (!a) and (b | c) or (c & d)
//jos a ei ole tosi ja b tai c on tosi, tai c ja d ovat tosia
Java on vahvasti tyypitetty kieli, joka tarkistaa käytettyjen argumenttien yhteensopivuuden jo ohjelman käännösvaiheessa. Käytettäessä keskenään epäyhteensopivia objekteja tulee suorittaa tyyppimuunnos. Oliolle suoritetaan tyyppimuunnos komennolla : (tyyppi) muunnettava Sulkujen sisään sijoitetaan tyyppi johon muunnettava tyyppi halutaan muuntaa, ja muunnettava-sanan tilalle arvo joka halutaan muuntaa haluttuun muotoon. Esimerkki : tyyppimuunnos
//Tyyppimuunnoksia lukuarvoilla liukuluku = (float) 3 / 2; //Muunnetaan laskutoimituksen 3 / 2 arvo liukuluvuksi kokonaisluku = (int) liukuluku //Muunnetaan luotu liukuluku kokonaisluvuksi |