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: ehtoon tulee ehtolauseke kysymyksellä eli ehdolla ehtoon tulee ehtolauseke ehtolausekkeella 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 epätosi - osa tosi - osa [lampotila > 0] TULOSTA ”Ei pakkasta”
Ehdon muoto YKSINKERTAINEN EHTO (JAVAlla) esimerkissä on vain tosi - osa if (lukumaara = = 100) { y = y + 1 ; } lohkosulut !
Ehdon muoto LOHKOSULUT: lohko muodostetaan aina aaltosulkeilla valintarakenteen tosi – osasta tehdään oma lohko valintarakenteen epätosi – osasta tehdään oma lohko lohkon aloittaa siis vasen aaltosulku { ja sen lopettaa oikea aaltosulku }
Ehdon muoto YKSINKERTAINEN EHTO (JAVAlla) 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 yksi ehto koostuu useasta kysymyksestä JA && TAI || EI ! YHDISTETTY EHTO 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 if (syntvuosi > 1980 && syntvuosi < 1990) { a = 0; } KAKSINKERTAINEN EHTO (JAVAlla) YHDISTÄVÄ SANA -> JA (&&) esimerkissä on vain tosi-osa if (syntvuosi > 1980 && syntvuosi < 1990) { a = 0; }
Ehdon muoto (hinta > 55,95 JA laji = = 1) KAKSINKERTAINEN EHTO 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 (JAVAlla) 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 (JAVAlla) 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 (JAVAlla) YHDISTÄVÄ SANA -> TAI ( || ) esimerkissä on vain tosi – osa if (saldo < 0 || luottoraja < ostot) { summa = 0 ; }
Ehdon muoto YHDISTETTYJÄ EHTOJA ((vv >= 2000 JA vv < 2003) TAI koodi = = 1) sulkujen käyttö välttämätön koko ehto on tosi tilanteissa: jos vv 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 (JAVAlla) esimerkissä on vain tosi – osa if ((vuosi >= 2000 && vuosi < 2003) || 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 kysymykset hajoitetaan useampaan kysymykseen jokaisesta tehdään oma ehtolauseke
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 seuraava lauseke tulisi tehdä sisäkkäisillä valintarakenteilla 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ä (0 kpl) tai sisältää 1 - n. kpl toimenpiteitä
Valintarakenne ja raja-arvot Raja-arvojen tehokas vertailu: jokaisesta raja-arvosta tehdään yksi kysymys ei käytetä yhdistettyjä ehtoja UML – kaaviossa oma esitystapansa Javalla käytetään else if – muotoa tai switch - muotoa
Valintarakenne ja raja-arvot 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ää”) ;