Ohjelman perusrakenteet PERÄKKÄISRAKENNE VALINTARAKENNE TOISTORAKENNE
Ohjelman perusrakenteet PERÄKKÄISRAKENNE koko ohjelman toiminta on peräkkäinen kaikki ohjelman toiminnot suoritetaan peräkkäin eli peräjälkeen ohjelman kulkua ei pidä ohjata takaisin ohjelman alkuunpäin
Ohjelman perusrakenteet VALINTARAKENNE valintarakennetta käytetään ohjelmassa vaihtoehtoisten toimintojen suorittamiseen ohjelman kulku haarautuu kahteen vaihtoehtoiseen kulkusuuntaan, joista aina vain toinen suoritetaan
VALINTARAKENNE valintarakenne alkaa aina kysymyksellä eli ehdolla ehto eli ehtolauseke kysymykseen eli ehtoon on aina kaksi vastausta: tosi ja epätosi
Ehdon muoto YKSINKERTAINEN EHTO (lampotila > 0) (lukumaara = = 100) (luku1 < luku2) (A >= B) tosi ja epätosi tilanteet on helppo ymmärtää
Ehdon muoto YKSINKERTAINEN EHTO (JAVA’lla) esimerkissä on vain tosi - osa if (lukumaara = = 100) { y = y + 1 ; } - aaltosulkeilla eli lohkosulkeilla muodostetaan tosi – osasta lohko
Ehdon muoto YKSINKERTAINEN EHTO (JAVA’lla) esimerkissä on tosi – osa ja epätosi – osa if (lukumaara = = 100) { y = y + 1 ; } else { y = y – 1 ; } - lohkosulkeet tosi – osassa ja epätosi - osassa
Ehdon muoto YHDISTETTY EHTO yhdistetyn ehdon loogiset operaattorit: yksi ehto koostuu useasta kysymyksestä yhdistetyn ehdon loogiset operaattorit: JA && TAI || EI !
Ehdon muoto KAKSINKERTAINEN EHTO YHDISTÄVÄ SANA - > JA (syntvuosi > 1980 JA syntvuosi < 1990) kaksi ehtoa yhdistetään JA sanalla ehdossa on mukana vain yksi muuttuja koko ehto on tosi silloin: kun syntvuosi muuttujan arvoalue on väliltä 1981-1989 koko ehto on epätosi kahdessa tilanteessa: muuttujan arvo on 1980 tai pienempi muuttujan arvo on 1990 tai suurempi
Ehdon muoto KAKSINKERTAINEN EHTO (JAVA’lla) YHDISTÄVÄ SANA -> JA (&&) esimerkissä on vain tosi-osa if (syntvuosi > 1980 && syntvuosi < 1990) { a = 0; }
Ehdon muoto KAKSINKERTAINEN EHTO (hinta > 55,95 JA laji = = 1) YHDISTÄVÄ SANA -> JA (hinta > 55,95 JA laji = = 1) kaksi ehtoa yhdistetään JA sanalla ehdossa on mukana kaksi eri muuttujaa koko ehto on tosi silloin: kun molempiin ehtoihin tulee vastaus tosi eli hinta on suurempi kuin 55,96 ja laji on yksi koko ehto on epätosi: jos toinen ehdoista on epätosi tai molemmat ehdot ovat epätosia
Ehdon muoto KAKSINKERTAINEN EHTO (JAVA’lla) YHDISTÄVÄ SANA -> JA (&&) esimerkissä on tosi – osa ja epätosi - osa if (hinta > 55,95 && laji = = 1) { ale = 5 ; } else { ale = 10 ; }
Ehdon muoto KAKSINKERTAINEN EHTO YHDISTÄVÄ SANA -> TAI (kappale = = 10 TAI kappale >= 150) kaksi ehtoa yhdistetään TAI sanalla ehdossa on mukana vain yksi muuttuja koko ehto on tosi kahdessa eri tilanteessa: vain ensimmäinen ehto on tosi vain toinen ehto on tosi koko ehto on epätosi: kun molemmat ehdot ovat epätosia
Ehdon muoto KAKSINKERTAINEN EHTO (JAVA’lla) YHDISTÄVÄ SANA -> TAI ( || ) esimerkissä on vain tosi – osa if (kappale = = 10 || kappale >= 150) { summa = 0 ; }
Ehdon muoto KAKSINKERTAINEN EHTO YHDISTÄVÄ SANA -> TAI (saldo < 0 TAI luottoraja < ostot) kaksi ehtoa yhdistetään TAI sanalla ehdossa on mukana kaksi muuttujaa koko ehto on tosi kolmessa eri tilanteessa: molemmat ehdot ovat tosia vain ensimmäinen ehto on tosi vain toinen ehto on tosi koko ehto on epätosi silloin: kun molemmat ehdot ovat epätosia
Ehdon muoto KAKSINKERTAINEN EHTO (JAVA’lla) YHDISTÄVÄ SANA -> TAI ( || ) esimerkissä on vain tosi – osa if (saldo < 0 TAI luottoraja < ostot) { summa = 0 ; }
Ehdon muoto YHDISTETTYJÄ EHTOJA ((vuosi >= 2000 JA vuosi < 2003) TAI koodi = = 1) sulkujen käyttö välttämätön koko ehto on tosi tilanteissa: jos vuosi on väliltä 2000 – 2002 tai koodi on 1 tai molemmat edellä mainitut ehdot ovat tosia koko ehto on epätosi: muuttujien muilla arvoilla
Ehdon muoto YHDISTETTYJÄ EHTOJA (JAVA’lla) esimerkissä on vain tosi – osa if ((vuosi >= 2000 JA vuosi < 2003) TAI koodi = = 1) { alku = 10 ; summa = 0 ; }
Ehdon muoto sääntöjä: ehtoon ei pidä laittaa liikaa kysymyksiä suositus on yhdestä kolmeen (1 -3) jos ehtoja on useita, on hyvin vaikeaa mieltää milloin koko ehto on tosi ja epätosi useiden ehtojen sijaan käytä sisäkkäisiä ehtoja
Sisäkkäinen valintarakenne sisäkkäistä valintarakennetta käytetään tilanteessa, jossa yhteen ehtoon tulisi liian monta kysymystä kysymykset siis hajoitetaan useampaan kysymykseen
Sisäkkäinen valintarakenne ehdon tosi - osa samoin kuin epätosi - osa voi sisältää edelleen valintarakenteita sisäkkäiset valintarakenteet ovat teknisesti täysin samanlaisia kuin valintarakenne yleensä
Sisäkkäinen valintarakenne edellisestä esimerkki Javalla: ((A < B) JA (B = = C)) TAI C > D) tosi -> luku = 5 epätosi -> luku = 10
EHDON TOSI - OSA ehdon muotoilusääntö: tosi: epätosi ehto pitää rakentaa niin, että tosi osaan tulee aina toimenpiteitä tosi osa sisältää aina 1 - n. kpl toimenpiteitä epätosi voi puuttua eli se ei sisällä yhtään toimenpidettä tai sisältää 1 - n. kpl toimenpiteitä
Ehto Java ohjelmointikielellä rakenteessa on vain tosi - osa: if ( A > B) { C = 2 ; D = E ; }
Valintarakenne ja raja-arvot Raja-arvojen tehokas vertailu: jokaisesta raja-arvosta tehdään yksi kysymys ei käytetä yhdistettyjä ehtoja
Valintarakenne ja raja-arvot tilanteessa käytetään else if -muotoa esimerkki Javalla: if (lampotila < -10) System.out.println (”Liian kova pakkanen”) ; else if (lampotila < 0) System.out.println (”Sopiva pakkanen”) ; else if (lampotila < 15) System.out.println (”Keväinen sää”) ; else if (lampotila < 25) System.out.println (”Kesäinen sää”) ; else System.out.println (”Helteinen sää”) ;