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.

Ohjelmoinnin kolme perusrakennetta

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

Videot

Ehtolauseet if