5.-6. tunti
If - elif - else
Viime tunnilla tutustuttiin valintarakenteeseen if-else, jossa valinta tapahtui seuraavasti
if [jokin ehto]:
jos ehto voimassa toteutetaan tämä rivi
else:
Jos ehto ei ollut voimassa toteutetaan tämä rivi
Nyt laajennetaan valintaa siten, että voi olla useampi ehto, joiden perusteella koodia toteutetaan.
if [ehto1]
jos ehto 1 pätee, toteutetaan tämä rivi
elif [ehto2]
jos ehto2 pätee, toteutetaan tämä rivi
elif [ehto3]
jos ehto3 pätee, tämä rivi
else
muussa tapauksessa toetutetaan tämä rivi
Esimerkikkikoodissa voisi kysyä lämpötilaa ja ohjelma kertoo onko lämpö plussalla vai pakkasella. Ja mikäli kumpikaan ehto ei toteudu, on lämpötila silloin 0. Huomaa, että syötettä kysyttäessä se määritellään kokonaislukutyyppiseksi int-määritteellä (ylimmällä rivillä).
lampo = int(raw_input("Kerro lämpötila "))
if lampo>0:
print"Plussalla ollaan"
elif lampo<0:
print"Pakkasta"
else:
print"Ilmeisesti on nollakeli"
Huomaa, että ohjelmaa kirjoitettaessa on ehtojen jälkeiset rivit sisennettävä. (Pedanet ei niitä tässä suostu sisentämään.)
Huomaa, että tulostettaessa eri muuttujatyyppejä sekaisin, on syytä jättää sulkeet pois print-komennon jälkeen.
Esim. jos käyttäjältä kysytään kaksi lukua ja halutaan tulostaessa näytölle kirjoittaa myös lasku näkyviin kannatta tehdä koodi alla olevan esimerkin mukaan.
luku1=int(raw_input("Anna luku "))
luku2=int(raw_input("Anna toinen luku "))
print luku1,"+",luku2,"=",luku1+luku2
Tällöin ohjelman ajo näyttäisi tältä:
![summa.jpg](https://peda.net/sastamala/peruskoulut/sylvaan-koulu/oppiaineet/skpn/ohjelmointi/7h/5-6-tunti/if-elif-else/summa-jpg:file/photo/bd260a060a49998135dcea91a9f85964fe035ac6/summa.jpg)
if [jokin ehto]:
jos ehto voimassa toteutetaan tämä rivi
else:
Jos ehto ei ollut voimassa toteutetaan tämä rivi
Nyt laajennetaan valintaa siten, että voi olla useampi ehto, joiden perusteella koodia toteutetaan.
if [ehto1]
jos ehto 1 pätee, toteutetaan tämä rivi
elif [ehto2]
jos ehto2 pätee, toteutetaan tämä rivi
elif [ehto3]
jos ehto3 pätee, tämä rivi
else
muussa tapauksessa toetutetaan tämä rivi
Esimerkikkikoodissa voisi kysyä lämpötilaa ja ohjelma kertoo onko lämpö plussalla vai pakkasella. Ja mikäli kumpikaan ehto ei toteudu, on lämpötila silloin 0. Huomaa, että syötettä kysyttäessä se määritellään kokonaislukutyyppiseksi int-määritteellä (ylimmällä rivillä).
lampo = int(raw_input("Kerro lämpötila "))
if lampo>0:
print"Plussalla ollaan"
elif lampo<0:
print"Pakkasta"
else:
print"Ilmeisesti on nollakeli"
Huomaa, että ohjelmaa kirjoitettaessa on ehtojen jälkeiset rivit sisennettävä. (Pedanet ei niitä tässä suostu sisentämään.)
Huomaa, että tulostettaessa eri muuttujatyyppejä sekaisin, on syytä jättää sulkeet pois print-komennon jälkeen.
Esim. jos käyttäjältä kysytään kaksi lukua ja halutaan tulostaessa näytölle kirjoittaa myös lasku näkyviin kannatta tehdä koodi alla olevan esimerkin mukaan.
luku1=int(raw_input("Anna luku "))
luku2=int(raw_input("Anna toinen luku "))
print luku1,"+",luku2,"=",luku1+luku2
Tällöin ohjelman ajo näyttäisi tältä:
![summa.jpg](https://peda.net/sastamala/peruskoulut/sylvaan-koulu/oppiaineet/skpn/ohjelmointi/7h/5-6-tunti/if-elif-else/summa-jpg:file/photo/bd260a060a49998135dcea91a9f85964fe035ac6/summa.jpg)