Ohjausrakenteet
Ohjaus- eli kontrollirakenteita käyteään ohjelmoinnissa ohjaamaan ohjelman kulkua. Ohjelma voi toistaa tiettyä toimintoa useita kertoja, tai ohjelman suoritus voi haarautua tietyn ehdon mukaisesti.
Ohjelmoinnin kolme perusrakennetta
Ohjelmoinnissa käytetään kolmea perusrakennetta:
- Peräkkäis-rakenne
- Ehto-rakenne
- Toisto-rakenne.
Ehto-rakenteet
if-ehtolause
Valintarakenteista if
-lausetta käytetään testaamaan onko sulkeissa annettu lauseke kokonaisuudessaan tosi tai epätosi. Ainoastaan siinä tapauksessa, että ehtolause on tosi, suoritetaan ehtolauseen jälkeinen lauseke tai lauselohko. Suoritettavat lauseet sisennetään! Oletuksena Pythonissa on että sisennys on neljä välilyöntiä.
if ehto:
#suoritetaan jos ehto on tosi
lause1
lause2
if-lauseeseen on mahdollisuus liittää else
-lohko, joka suoritetaan, jos varsinainen if-lauseen ehto ei toteudu.
if ehto:
#suoritetaan jos ehto on tosi
lause1
lause2
else
#suoritetaan jos ehto ei ole tosi
lause_n1
lause_n2
Ehtolauseita voidaan myös ketjuttaa. Tällöin käytetään elif
-ehtolausetta. Tällöin toteutuneen ehdon jälkeen ei enään tarkisteta jäljelle jääneitä ehtoja. Tällöin puhutaan if elif
-lauseryhmästä.
if ehto1:
komento
elif ehto2:
komento
elif ehto3:
komento
else:
komento
Tässä muutamia esimerkkejä:
#esimerkki 1
money = 8
if money < 10:
print("Money is less than 10 euros. You can not withdraw money!");
#esimerkki 2
#if - elif - else
txt = input("Anna jokin luku: ")
number = int(txt)
if number == 10:
print("numero on 10")
elif number < 10:
print("numero on pienempi kuin 10")
elif number >= 20:
print("numero on suurempi tai yhtäsuuri kuin 20")
else:
print("numero on 11 ja 19 välissä")
Voit yhdistää useamman ehdon and- ja or -operaattorilla. Seuraavassa esimerkissä annetun luvun täytyy olla nollaa suurempi ja pienempi kuin kymmenen.
num = int(input("Anna jokin nollaa suurempi ja kymmentä pienempi luku "))
if (num > 0 and num < 10):
print("Annoin kelvollisen luvun")
Ehtolauseiden loogiset operaattorit
Operaattori | Tehtävä | Esimerkki |
---|---|---|
== | yhtäkuin | if number == 10: |
!= | erisuuri kuin | if number != 10: |
< | pienempi kuin | if number < 10: |
> | suurempi kuin | if number > 10 |
<= | pienempi tai yhtäsuuri kuin | if number <= 10: |
>= | suurempi tai yhtäsuuri kuin | if number >= 10: |
not | ei ole tosi | if not valid: |
Zen
Ehtorakenteista muodostuu ohjelman logiikka, eli toisin sanottuna sen älykkyys. Vaikka näennäisesti ehtolauseet on melko helppo ymmärtää ne voivat väärin käytettynä olla erittäin monimutkaisia ja vaikeita. Myös suurin osa loogisista ohjelmointivirheistä tapahtuu ehto- ja toistolauseissa. Joten ole tarkkana kun kirjoitat ehtolauseita ;-)