next up previous contents index
Next: Valintakäsky (if) Up: Perusteet Previous: Operaatioita merkkijonoilla   Sisältö   Hakemisto

Käyttäjän syötteen lukeminen

Kappaleessa 1.3 esitettiin Fahrenheit-Celsius-muunnoksen tekevä ohjelma. Ohjelma oli siinä mielessä tyhmä, että käyttäjä ei voinut antaa sitä Fahrenheit-lukemaa, joka oli tarkoitus muuntaa, vaan lukema täytyi koodata sisään ohjelmaan. Tässä kappaleessa tutustutaan siihen, miten ohjelma voi lukea käyttäjän syötteitä.

Syötteiden lukeminen on Java-kielen tarjoamilla perusvälineillä suhteellisen hankalaa. Ohjelmoijan pitää esimerkiksi varautua erilaisiin virhetilanteisiin, kuten siihen, että käyttäjä antaa kirjaimia, vaikka häneltä pyydetään kokonaislukua. Tämän vuoksi tässä vaiheessa opetellaan lukemaan syötteitä Arto Wiklan kirjassa Ohjelmoinnin perusteet Java-kielellä esittelemän Lue-luokan tarjoamilla välineillä ja vasta myöhemmin tutustutaan Javan perusvälineiden käyttöön. Lue-luokka ei siis kuulu Javan peruspakettiin, mutta sen voi käydä hakemassa omalle koneelleen tämän kurssin kotisivulta.

Lue-luokka tarjoaa käyttöön neljä metodia, jonka avulla voidaan lukea käyttäjän antama kokonaisluku, liukuluku, yksittäinen merkki tai kokonainen rivi. Metodi tarkoittaa nimettyä jonoa käskyjä, joita ohjelmaa voi pyytää suorittamaan kutsumalla tätä metodia. Tarkastelemme ensin, mitä metodeita Lue-luokassa on, ja sitten sitä, miten näitä metodeita voidaan kutsua ja miten metodin lukema arvo saadaan ohjelmassa käyttöön. Lue-luokan metodit ovat seuraavat:

Lue.kluku() lukee yhden kokonaisluvun int-tyyppisenä
Lue.dluku() lukee yhden desimaaliluvun double-tyyppisenä
Lue.rivi() lukee käyttäjän antaman rivin merkkijonona
Lue.merkki() lukee yhden merkin char-tyyppisenä

Jotta metodin lukema arvo saataisiin ohjelmassa käyttöön, se pitää sijoittaa johonkin muuttujaan. Tämä voidaan tehdä niin, että kirjoitetaan sijoituskäsky, jossa =-merkin oikealle puolelle kirjoitetaan Lue-luokan metodin kutsu ja vasemmalle puolelle sen muuttujan nimi, jonka luettu arvo halutaan sijoittaa. Alla esitetyillä kahdella rivillä määritellään muuttuja luku, luetaan käyttäjän antama kokonaisluku kutsumalla Lue.kluku()-metodia ja annetaan luettu konaisluku arvoksi muuttujalle luku.

int luku;
luku = Lue.kluku();

Normaalisti on kuitenkin järkevää kertoa ensin käyttäjälle, millaista syötettä häneltä odotetaan, esimerkiksi:

int luku
System.out.println("Anna joku kokonaisluku");
luku = Lue.kluku();
System.out.println("Antamasi luku oli " + luku);
Kun ohjelmassa kutsutaan Lue-luokan metodia, ohjelma jää odottamaan, että käyttäjä antaa jonkun syötteen ja painaa enter-näppäintä. Vasta tämän jälkeen ohjelman suoritus jatkuu.

Seuraavaksi esimerkkinä lämpötilamuunnoksen tekevä ohjelma, joka pyytää lämpötilan Fahrenheiteissa käyttäjältä:

public class Fahrenheit3 {

  public static void main(String[] args) {
    int fahrenheit, celsius;

    System.out.println("Anna lämpötila Fahrenheiteissa");
    fahrenheit = Lue.kluku();
    celsius = 5 * (fahrenheit - 32) / 9;
    System.out.println(fahrenheit + " F on " + celsius + " Celsiusta");
  }
}


next up previous contents index
Next: Valintakäsky (if) Up: Perusteet Previous: Operaatioita merkkijonoilla   Sisältö   Hakemisto
Kerttu Pollari-Malmi 2003-01-27