Toistorakenne while-silmukka

Toistorakenne

While-silmukka

While-komennolla voi toistaa jotakin komentoa niin kauan, kunnes jokin ehto täyttyy.

Esimerkki 1.


Luodaan ohjelma, joka kysyy käyttäjältä laskun vastausta niin kauan, kunnes oikea vastaus löytyy.

Luodaan ensin muuttuja nimeltään vastaus, joka on aluksi tyhjä (heittomerkit).

vastaus = ""

Luodaan while-silmukka, joka toistaa kysymystä aina väärän vastauksen jälkeen (vastaus on erisuuri kuin 15). 

while vastaus != 15:


[[$ \ \ \ \ \ $]] vastaus = int( input( "Kuinka paljon on kolme kertaa viisi?")) #Kyseessä on kokonaisluku, joten käytetään int-komentoa.

print ("Oikein!")

[[$\vdots$]]

Kuinka paljon on kolme kertaa viisi? 14
Kuinka paljon on kolme kertaa viisi? 15
Oikein!

Välitehtävä

Esimerkki 2.

#Tässä ohjelmassa tulostetaan luvut 1-10 käyttäen while-silmukkaa.

luku = 1

while luku <11: #Silmukka toistuu niin kauan, kuin luku on alle 11.
[[$ \ \ \ \ \ $]]print (luku)
[[$ \ \ \ \ \ $]]luku = luku +1 #Luku kasvaa aina yhdellä.

print ("Loppu")

[[$\vdots$]]

1
2
3
4
5
6
7
8
9
10
Loppu

Välitehtävä

Tehtäviä

1. a) Luo ohjelma, joka kysyy käyttäjältä salasanaa kunnes se on oikein.
b) Luo ohjelma, joka kysyy käyttäjältä käyttäjätunnusta ja salasanaa kunnes ne ovat oikein.

2. a) Luo ohjelma, joka tulostaa luvut 1-20 for-silmukan avulla.
b) Luo ohjelma, joka tulostaa luvut 1-20 while-silmukan avulla.

3. a) Luo ohjelma, joka tulostaa luvun 3 kertotaulun for-silmukan avulla.
b) Luo ohjelma, joka tulostaa luvun 3 kertotaulun while-silmukan avulla.

Syventäviä tehtäviä

Korjaa edellisessä kappaleessa aloittamaasi ohjelmaa siten, että väärän vastauksen jälkeen ohjelma pyytää yrittämään uudestaan kunnes oikea vastaus löytyy.

4.  
Luo ohjelma, joka kysyy alkuaineiden kemiallisia merkkejä ja antaa pisteitä oikeista vastauksista.

5. Luo ohjelma, joka kysyy Kotkan asukaslukua kunnes vastaus on 5000 asukkaan tarkkuudella oikein.