Laskeminen muuttujilla

Edellisessä luvussa huomasit, että Java-ohjelmissa voit suoraan kirjoittaa laskuja ja tietokone laskee tulokset kuin laskukone. Tämä ei kuitenkaan ole vielä koko totuus.

Matematiikassa käytetään kaavoja, esim. y = 2x tarkoittaa, että y:n arvo saadaan, kun x:ksi valitaan joku luku ja se kerrotaan kahdella. Ajatellaan nyt, että y ja x ovat kokonaislukutyyppisiä (int) muuttujia. Kirjoitetaan tästä Java-ohjelman pätkä:

      int y, x;

      x = 2;
      y = 2*x;

      System.out.println(y);
    

Edellisessä esimerkissä esiteltiin kokonaislukutyyppiset muuttujat x ja y. x:n arvoksi sijoitettiin 2 ja y:n arvoksi sijoitettiin luku, joka saadaan, kun muuttujassa x oleva arvo kerrotaan kahdella. Lopuksi tulostettiin ruudulle saatu y:n arvo (siis luku 4). Jos muutatkin pätkää siten, että sijoitat x:ään esim. luvun 4, saat y:n arvoksi 2*4=8. Siis y:n arvo muuttuu sen mukaan, minkä valitset x:n arvoksi. Näin voit käyttää muuttujia laskiessasi hyväksi.

Edellinen esimerkki oli siitä huono, että muuttujien nimet eivät olleet millään tavalla kuvaavia. Hyi! tällainen on huonoa ohjelmointityyliä, joten otetaan toinen parempi, mutta hieman monimutkaisempi esimerkki. Kirjoitetaan nyt vaihteeksi kokonainen ohjelma:

      public class Keskiarvo {
          public static void main(String[] args) {
              int luku1, luku2, luku3;
              double keskiarvo;
  
              luku1 = 8;
              luku2 = 9;
              luku3 = 10;
  
              keskiarvo = (luku1 + luku2 + luku3) / 3.0;
              System.out.println(keskiarvo);
          }
      }
    

Edellinen esimerkki laskee kolmen luvun keskiarvon. Voit sijoittaa luvuiksi mitä tahansa ja aina saat niiden keskiarvon. Nyt huomaat muuttujien kätevyyden. Huomaa kuitenkin, että sinun on aina annettava muuttujille arvot, ennenkuin voit laskea niillä: jos edellisessä esimerkistä olisi jätetty sijoituslauseet pois, ohjelmaa ei olisi pystynyt kääntämään, koska eihän tällöin muuttujissa luku1, luku2 ja luku3 ole mitään arvoja, joilla voisi laskea!


Muuttujien arvon kasvattaminen ja vähentäminen

Mitä seuraava lause tarkoittaa?

      int laskuri = 10;

      laskuri = laskuri +1;
    

Tämähän tarkoittaa tietenkin sitä, että laskurin arvoksi asetetaan ensin kymmenen ja sen jälkeen asetetaan se arvo joka saadaan, kun laskurin tämän hetkiseen arvoon lisätään yksi. Laskurin arvoksi tulee siis 11. Tälle laskurin arvon kasvattamiselle on myös lyhyempi tapa, joka ilmaisee täsmälleen samaa asiaa:

      int laskuri = 10;
  
      laskuri++;
    

Siis merkintä laskuri++; on lyhyempi merkintä lauseelle laskuri = laskuri + 1; Vastaavasti laskurin arvoa voidaan arvatenkin vähentää merkinnällä laskuri--; esim.

      int laskuri = 10;

      laskuri--;
    

Tällöin laskurin arvoksi tulee 9.