Ohjelman perusrakenteet PERKKISRAKENNE VALINTARAKENNE TOISTORAKENNE Ohjelman perusrakenteet PERKKISRAKENNE

  • Slides: 27
Download presentation
Ohjelman perusrakenteet PERÄKKÄISRAKENNE VALINTARAKENNE TOISTORAKENNE

Ohjelman perusrakenteet PERÄKKÄISRAKENNE VALINTARAKENNE TOISTORAKENNE

Ohjelman perusrakenteet ¡ PERÄKKÄISRAKENNE l koko ohjelman toiminta on peräkkäinen l kaikki ohjelman toiminnot

Ohjelman perusrakenteet ¡ PERÄKKÄISRAKENNE l koko ohjelman toiminta on peräkkäinen l kaikki ohjelman toiminnot suoritetaan peräkkäin eli peräjälkeen l ohjelman kulkua ei pidä ohjata takaisin ohjelman alkuunpäin

Ohjelman perusrakenteet ¡ VALINTARAKENNE l valintarakennetta käytetään ohjelmassa vaihtoehtoisten toimintojen suorittamiseen l ohjelman kulku

Ohjelman perusrakenteet ¡ VALINTARAKENNE l valintarakennetta käytetään ohjelmassa vaihtoehtoisten toimintojen suorittamiseen l ohjelman kulku haarautuu kahteen vaihtoehtoiseen kulkusuuntaan, joista aina vain toinen suoritetaan

VALINTARAKENNE ¡ valintarakenne alkaa aina: l kysymyksellä eli ehdolla ¡ ehtoon tulee ehtolauseke ¡

VALINTARAKENNE ¡ valintarakenne alkaa aina: l kysymyksellä eli ehdolla ¡ ehtoon tulee ehtolauseke ¡ ehtolausekkeella on aina kaksi vastausta: l l tosi ja epätosi

Ehdon muoto ¡ YKSINKERTAINEN EHTO l l ¡ (lampotila > 0) (lukumaara = =

Ehdon muoto ¡ YKSINKERTAINEN EHTO l l ¡ (lampotila > 0) (lukumaara = = 100) (luku 1 < luku 2) (A >= B) tosi ja epätosi tilanteet on helppo ymmärtää

Ehdon muoto tosi - osa epätosi - osa [lampotila > 0] TULOSTA ”Ei pakkasta”

Ehdon muoto tosi - osa epätosi - osa [lampotila > 0] TULOSTA ”Ei pakkasta”

Ehdon muoto ¡ YKSINKERTAINEN EHTO (JAVAlla) l esimerkissä on vain tosi - osa if

Ehdon muoto ¡ YKSINKERTAINEN EHTO (JAVAlla) l esimerkissä on vain tosi - osa if (lukumaara = = 100) { } y=y+1; lohkosulut !

Ehdon muoto ¡ LOHKOSULUT: l l lohko muodostetaan aina aaltosulkeilla valintarakenteen tosi – osasta

Ehdon muoto ¡ LOHKOSULUT: l l lohko muodostetaan aina aaltosulkeilla valintarakenteen tosi – osasta tehdään oma lohko valintarakenteen epätosi – osasta tehdään oma lohkon aloittaa siis vasen aaltosulku { ja sen lopettaa oikea aaltosulku }

Ehdon muoto ¡ YKSINKERTAINEN EHTO (JAVAlla) l esimerkissä on tosi – osa ja epätosi

Ehdon muoto ¡ YKSINKERTAINEN EHTO (JAVAlla) l 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 l yksi ehto koostuu useasta kysymyksestä yhdistetyn ehdon

Ehdon muoto ¡ ¡ YHDISTETTY EHTO l yksi ehto koostuu useasta kysymyksestä yhdistetyn ehdon loogiset operaattorit: l l l JA && TAI || EI !

Ehdon muoto ¡ KAKSINKERTAINEN EHTO l YHDISTÄVÄ SANA - > JA (syntvuosi > 1980

Ehdon muoto ¡ KAKSINKERTAINEN EHTO l 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: ¡ l ¡ kun syntvuosi muuttujan arvoalue on väliltä 19811989 koko ehto on epätosi kahdessa tilanteessa: l l muuttujan arvo on 1980 tai pienempi muuttujan arvo on 1990 tai suurempi

Ehdon muoto ¡ KAKSINKERTAINEN EHTO (JAVAlla) l YHDISTÄVÄ SANA -> JA (&&) ¡ esimerkissä

Ehdon muoto ¡ KAKSINKERTAINEN EHTO (JAVAlla) l YHDISTÄVÄ SANA -> JA (&&) ¡ esimerkissä on vain tosi-osa if (syntvuosi > 1980 && syntvuosi < 1990) { a = 0; }

Ehdon muoto ¡ KAKSINKERTAINEN EHTO l YHDISTÄVÄ SANA -> JA (hinta > 55, 95

Ehdon muoto ¡ KAKSINKERTAINEN EHTO l 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: ¡ l l ¡ kun molempiin ehtoihin tulee vastaus tosi eli hinta on suurempi kuin 55, 96 ja laji on yksi koko ehto on epätosi: l jos toinen ehdoista on epätosi tai molemmat ehdot ovat epätosia

Ehdon muoto ¡ KAKSINKERTAINEN EHTO (JAVAlla) l YHDISTÄVÄ SANA -> JA (&&) ¡ esimerkissä

Ehdon muoto ¡ KAKSINKERTAINEN EHTO (JAVAlla) l 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 l YHDISTÄVÄ SANA -> TAI (kappale = = 10

Ehdon muoto ¡ KAKSINKERTAINEN EHTO l 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: ¡ l l ¡ vain ensimmäinen ehto on tosi vain toinen ehto on tosi koko ehto on epätosi: l kun molemmat ehdot ovat epätosia

Ehdon muoto ¡ KAKSINKERTAINEN EHTO (JAVAlla) l YHDISTÄVÄ SANA -> TAI ( || )

Ehdon muoto ¡ KAKSINKERTAINEN EHTO (JAVAlla) l YHDISTÄVÄ SANA -> TAI ( || ) ¡ esimerkissä on vain tosi – osa if (kappale = = 10 || kappale >= 150) { summa = 0 ; }

Ehdon muoto ¡ KAKSINKERTAINEN EHTO l YHDISTÄVÄ SANA -> TAI (saldo < 0 TAI

Ehdon muoto ¡ KAKSINKERTAINEN EHTO l 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: ¡ l l l ¡ molemmat ehdot ovat tosia vain ensimmäinen ehto on tosi vain toinen ehto on tosi koko ehto on epätosi silloin: l kun molemmat ehdot ovat epätosia

Ehdon muoto ¡ KAKSINKERTAINEN EHTO (JAVAlla) l YHDISTÄVÄ SANA -> TAI ( || )

Ehdon muoto ¡ KAKSINKERTAINEN EHTO (JAVAlla) l 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

Ehdon muoto ¡ YHDISTETTYJÄ EHTOJA ((vv >= 2000 JA vv < 2003) TAI koodi = = 1) l l 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 l koko ehto on epätosi: ¡ muuttujien muilla arvoilla

Ehdon muoto ¡ YHDISTETTYJÄ EHTOJA (JAVAlla) l esimerkissä on vain tosi – osa if

Ehdon muoto ¡ YHDISTETTYJÄ EHTOJA (JAVAlla) l esimerkissä on vain tosi – osa if ((vuosi >= 2000 && vuosi < 2003) || koodi = = 1) { alku = 10 ; summa = 0 ; }

Ehdon muoto ¡ Sääntöjä: l ehtoon ei pidä laittaa liikaa kysymyksiä l suositus on

Ehdon muoto ¡ Sääntöjä: l ehtoon ei pidä laittaa liikaa kysymyksiä l suositus on yhdestä kolmeen (1 -3) l jos ehtoja on useita, on hyvin vaikeaa mieltää milloin koko ehto on tosi ja epätosi l 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 ¡ ¡ kysymykset hajoitetaan useampaan kysymykseen jokaisesta tehdään oma ehtolauseke

Sisäkkäinen valintarakenne ¡ ¡ ehdon tosi - osa samoin kuin epätosi - osa voi

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 <

Sisäkkäinen valintarakenne seuraava lauseke tulisi tehdä sisäkkäisillä valintarakenteilla ¡ esimerkki Javalla: ¡ ((A < B) JA (B = = C)) TAI C > D) tosi ¡ epätosi ¡ -> luku = 5 -> luku = 10

EHDON TOSI - OSA ¡ ehdon muotoilusääntö: l tosi: ehto pitää rakentaa niin, että

EHDON TOSI - OSA ¡ ehdon muotoilusääntö: l tosi: ehto pitää rakentaa niin, että tosi osaan tulee aina toimenpiteitä ¡ tosi osa sisältää aina 1 - n. kpl toimenpiteitä ¡ l 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: l l jokaisesta raja-arvosta tehdään yksi kysymys

Valintarakenne ja raja-arvot ¡ Raja-arvojen tehokas vertailu: l l 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

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ää”) ;