Ilkka Koivistoinen 13.02.2002

Edellinen

Seuraava

5.2 Aritmeettiset operaattorit

Aritmeettiset operaattorit on tarkoitettu lukujen laskutoimituksiin. Java -kielessä on valmiina vain peruslaskutoimitukset. Lisää laskutoimituksia (mm. neliöjuuri ja potenssiinkorotus) löytyy Math –luokan valmiilla funktioilla. Peruslaskutoimitukset ovat

+

Yhteenlasku

-

Vähennyslasku

*

Kertolasku

/

Jakolasku

%

Jakojäännös

Seuraavaan taulukkoon on kerätty tärkeimmät laskuoperaattoreiden tuloksien tyypit. Paljon kattavampi taulukko löytyy Sunin Java –kielen dokumentaatiosta.

Operaattori Operaatio Operandien tyyppi Tuloksen tyyppi
+ Yhteenlasku int+int int
    float+int, int+float
float+float
float
- Vähennyslasku int – int int
    int – float, float – int
float – float
float
* Kertolasku int * int int
    int*float, float*int
float*float
float
/ Jakolasku int/int, int/float,
float/int, float/float
float  ( int/int antaa int !!!!! )
% osamäärä int % int int

Huomaa, että + operaattoria voidaan käyttää myös kahden merkkijonon välillä. Jakolaskun kanssa on oltava tarkkana. Kokeile kaikki eri mahdollisuudet (int/int, int/float, float/int, float/float) ja varmistu tuloksen tyypistä ja tarkkuudesta (katkaisu vai pyöristys?). Tuloksen tyyppi tulee aina tietää, jotta sijoitusyhteensopimattomuuden sudenkuopat osaisi jo etukäteen välttää. Suurimmat loogiset virheet usein aiheutuvat nimenomaan merkki ja numerotiedon tai int ja float tyypin sotkeentumisella. Tämä tapahtuu helposti nimenomaan metodikutsuparametreja pinottaessa. Tähän palaamme kurssin lopulla. Java –tulkki tarkistaa oletuksena sijoitusyhteensopivuuden ja ilmoittaa mahdollisista epäselvyyksistä virheilmoituksella

Esimerkki e12a

import Lue;
public class e12a
{    // kokeillaan jakolaskua ja jakojäännöstä
   public static void main(String args[])
   {
       int i1, i2;
       System.out.println(Anna kaksi kokonaislukua eri riveille);
       i1 = Lue.kluku();
       i2 = Lue.kluku();
       System.out.println("Jakolasku: "+i1+"/"+i2+"="+i1/i2);
       System.out.println("Jakojäännös: "+i1+"%"+i2+"="+i1%i2);
   }
}

 

Ilkka Koivistoinen 13.02.2002

Edellinen

Seuraava