Kontrollirakenteet laajemmin - Toistorakenne - Valintarakenne
Toistorakenteen muodot Toistorakenne: while do – while for
WHILE - toistorakenne KÄYTTÖSUOSITUS: toistokertojen lukumäärää ei tiedetä toistomuuttuja saa arvon yleensä käyttäjältä toistomuuttujalle käyttäjä voi antaa arvoja 0 - n. kpl kertaa, jolloin on myös mahdollista, että toistoa ei tehdä kertaakaan
WHILE - toistorakenne KÄYTTÖSUOSITUS: toistorakenteessa on yleensä vain yksi muuttuja, jonka arvo lopettaa toiston jos ohjelma esimerkiksi pyytää käyttäjältä useita tietoja, niin näistä tiedoista vain yksi valitaan toistomuuttujaksi muut tiedot pyydetään yleensä toiston sisällä
WHILE - toistorakenne esimerkki Javalla: System.out.println (”Anna luku, 0 lopettaa”) ; luku = input.nextInt () ; while (luku != 0) { ……. ……. System.out.println (”Anna luku, 0 lopettaa”) ; luku = input.nextInt () ; }
DO - WHILE - toistorakenne KÄYTTÖSUOSITUS: käytetään silloin kun toisto halutaan suorittaa vähintään yhden kerran sen jälkeen tarkistetaan ehdossa suoritetaanko toisto uudelleen vai ei toistomuuttuja saa arvon yleensä käyttäjältä
DO - WHILE - toistorakenne KÄYTTÖSUOSITUS: koska toistettava osa suoritetaan ensin yhden kerran, tulee toiston ehto tässä rakenteessa aina toiston loppuun käyttäjä voi antaa arvoja toistomuuttujalle 1 - n. kpl kertaa, joten toistojen kokonaismäärää ei tässäkään rakenteessa tiedetä täysin tarkasti
DO - WHILE - toistorakenne esimerkki Javalla: do { System.out.println (”Anna arvosana”) ; arvosana = input.nextInt () ; laskuri ++ ; summa = summa + arvosana ; System.out.println (”Anna 1 tai 0, 0 lopettaa”) ; jatko = input.nextInt () ; } while (jatko == 1) ; System.out.println (”Keskiarvo on ” + (summa / laskuri)) ;
FOR - toistorakenne KÄYTTÖSUOSITUS: käytetään tilanteissa, joissa toistokertojen lukumäärä tiedetään tarkalleen ohjelmoija määrää toistomuuttujan alkuarvon ja lopetusarvon sekä myös toistomuuttujan muutosarvon (kaavan)
FOR - toistorakenne RAKENTEEN MUOTO: rakenteessa on kolme osaa: ensin asetetaan toistomuuttujalle alkuarvo sitten muodostetaan toiston ehto viimeisenä määritellään toistomuuttujaa muuttava kaava näiden erottimena on puolipiste
FOR - toistorakenne esimerkki Javalla: for (kpl = 0; kpl < 10; kpl ++) { System.out.println (”Anna hinta”) ; hinta = Keyboard.readDouble () ; summa = summa + hinta ; } System.out.println (”Keskihinta on ” + (summa / 10)) ;
Valintarakenteen muodot Valintarakenne: if if else if else if switch ? :
SWITCH - valintarakenne käytetään moni valinnassa ehtomuuttujalla on useita eri arvoja, joilla ehto on tosi korvaa if - valintarakenteen saadaan selkeämpi kokonaisuus
SWITCH - valintarakenne rakenne alkaa sanalla switch sen jälkeen tulee suluissa ehtomuuttuja, johon voi liittyä myös esim. kaava tämän jälkeen luetellaan ne ehtomuuttujan kaikki arvot, joilla ehto on tosi lopussa voi olla lisäksi epätosi - osa
SWITCH - valintarakenne UML – kaaviona: [luku == 2] a ++ ; a ++ ; break; break; [luku == 5] b ++ ; break; muut ++ ;
SWITCH - valintarakenne esimerkki Javalla: switch (luku) { case 2: a++ ; break ; case 5: b++ ; break ; default: muut ++ ; }
SWITCH - valintarakenne edellinen esimerkki Javalla, kun käytetään else if – rakennetta: if (luku == 2) a++ ; else if (luku == 5) b++ ; else muut ++ ;
Ehto ? : Rakenteen muoto: muuttuja= ((ehto) ? arvo : arvo) rakenne koostuu neljästä osasta: muuttuja, joka saa arvon (sijoitus) ehto suluissa ? – merkin jälkeen tosi – arvo : – merkin jälkeen epätosi - arvo
Ehto ? : Ehto : jos laskuri on suurempi kuin 10, kpl saa arvokseen luvun 5, muuten 0. Javalla: kpl = ((laskuri > 10) ? 5 : 0) ;