next up previous contents index
Next: Koottu lause Up: Perusteet Previous: Käyttäjän syötteen lukeminen   Sisältö   Hakemisto

Valintakäsky (if)

Tähän asti esitetyt ohjelmat ovat aina suorittaneet samat käskyt samassa järjestyksessä. Usein haluamme kuitenkin että ohjelma toimii eri tilanteissa eri tavoilla, esimerkiksi niin, että ohjelman toiminta riippuu käyttäjän antamista syötteistä.

Oletetaan, että erääseen tilaisuuteen myydään lippuja, jotka maksavat aikuisilta 10 euroa ja lapsilta 3 euroa. Alle 18-vuotiaat pääsevät lasten lipulla. Haluamme kirjoittaa ohjelman, joka kysyy käyttäjältä tämän iän ja tulostaa sitten lipun hinnan. Hintaa varten voimme määritellä muuttujan hinta, mutta sille asetettava arvo riippuu käyttäjän antamasta iästä. Jos ikä on pienempi kuin 18, pitää suorittaa käsky hinta = 3 ja muussa tapauksessa käsky hinta = 10.

Tällaista tilannetta varten Java-kielessä on if-else-rakenne. Rakenteen yleinen muoto on

if (ehto)
  käsky1;
else
  käsky2;

Tämä käsky suoritetaan seuraavasti: Ensin tutkitaan, onko ehto tosi vai ei. Jos ehto on tosi, suoritetaan käsky1. Jos ehto on epätosi, suoritetaan käsky käsky2. Toinen käskyistä käsky1 ja käsky2 jää siis aina suorittamatta.

Lipun hinnan tulostava ohjelma voidaan siis kirjoittaa if-käskyn avulla seuraavasti:

public class Liput {
  public static void main(String[] args) {
    int ika, hinta;

    System.out.println("Anna ikäsi");
    ika = Lue.kluku();
    if (ika < 18)
      hinta = 3;
    else
      hinta = 10;
    System.out.println("Pääsylippu maksaa " + hinta + " euroa");
  }
}

If-käskyn ei ole pakko sisältää else-osaa. Jos else-osa puuttuu, if-rakenteeseen kuuluva käsky suoritetaan vain, jos ehto on tosi. Jos ehto on epätosi, siirrytään suoraan ohjelman seuraavaan käskyyn.

Sulkuihin kirjoitettu ehto voi olla mikä tahansa lauseke, jonka arvo on true tai false. Tällaisia lausekkeita voi muodostaa esimerkiksi vertailuoperaattoreiden avulla. Java-kieli tarjoaa seuraavat vertailuoperaattorit:
> suurempi kuin
< pienempi kuin
== yhtäsuuri kuin
!= erisuuri kuin
>= suurempi tai yhtäsuuri kuin
<= pienempi tai yhtäsuuri kuin

Huomaa, että yhtäsuuri kuin -operaattori kirjoitetaan kahden yhtäsuuruusmerkin avulla. Yksi yhtäsuuruusmerkki tarkoittaa sijoitusta, jolla ei ole mitään tekemistä vertailun kanssa.

Lisäksi kannattaa huomata, että kahden desimaaliluvun yhtäsuuruutta ei kannata tutkia, koska pyöristysvirheet voivat aiheuttaa yllätyksiä.



Aliluvut
next up previous contents index
Next: Koottu lause Up: Perusteet Previous: Käyttäjän syötteen lukeminen   Sisältö   Hakemisto
Kerttu Pollari-Malmi 2003-01-27