Python 3/while-silmukka
While-silmukka
[muokkaa | muokkaa wikitekstiä]Tavallisesti tietokone suorittaa ohjelmaa riveittäin alkaen ensimmäisestä rivistä. Ohjelman ohjausrakenteilla voidaan muuttaa tätä järjestystä tai suorittaa tietyt käskyt vain tiettyjen ehtojen täyttyessä. While-silmukka on yksi python kielen ohjausrakenteista. Seuraava esimerkki havainnollistaa While-silmukan käyttöä.
Esimerkkikoodi:
a = 0
while a < 10 :
a = a + 1
print(a)
Ohjelma asettaa aluksi muuttujan a arvoksi 0 ja suorittaa sitten while-silmukkaa niin kauan kuin ehto a<10 on tosi. Jokaisella silmukan kierroksella ohjelma kasvattaa a:n arvoa ja tulostaa sen nykyisen arvon. Viimeisen kierroksen alkaessa a=9 ja sen arvo kasvaa silmukassa yhdellä, joten viimeinen tulostettava arvo on 10.
Esimerkkikoodin tulostus:
1
2
3
4
5
6
7
8
9
10
Toinen esimerkki:
a = 1
s = 0
print('Anna yhteenlaskettava luku')
print('Yhteenlasku lopetetaan numerolla 0')
while a != 0:
print('summa:', s)
a = int(input('yhteenlaskettava: '))
s = s + a
print('Kokonaissumma =', s)
Esimerkkituloste:
>>>
Anna yhteenlaskettava luku
Yhteenlasku lopetetaan numerolla 0
summa: 0
yhteenlaskettava: 34
summa: 34
yhteenlaskettava: 2
summa: 36
yhteenlaskettava: 1
summa: 37
yhteenlaskettava: 7
summa: 44
yhteenlaskettava: 4567
summa: 4611
yhteenlaskettava: 0
Kokonaissumma = 4611
>>>
Silmukasta voi poistua ennenaikaisesti break-lauseella.
a = 1
s = 0
print('Anna yhteenlaskettava luku')
print('Yhteenlasku lopetetaan numerolla 0')
while a != 0:
print('summa:', s)
try:
a = int(input('yhteenlaskettava: '))
except ValueError:
print("Virheellinen luku. Lopetetaan.")
break
s = s + a
print('Kokonaissumma =', s)
Esimerkkitulostus
summa: 0 yhteenlaskettava: 34 summa: 34 yhteenlaskettava: 2 summa: 36 yhteenlaskettava: 1 summa: 37 yhteenlaskettava: 7 summa: 44 yhteenlaskettava: x Virheellinen luku. Lopetetaan.
Silmukan yhden kierroksen voi keskeyttää continue-lauseella. Continue-lauseella siis hypätään seuraavan kierroksen alkuun.
a = 1
s = 0
print('Anna yhteenlaskettava luku')
print('Yhteenlasku lopetetaan numerolla 0')
while a != 0:
print('summa:', s)
try:
a = int(input('yhteenlaskettava: '))
except ValueError:
print("Virheellinen luku. Yritä uudelleen.")
continue
s = s + a
print('Kokonaissumma =', s)
Esimerkkitulostus
summa: 0 yhteenlaskettava: 34 summa: 34 yhteenlaskettava: 2 summa: 36 yhteenlaskettava: 1 summa: 37 yhteenlaskettava: x Virheellinen luku. Yritä uudelleen. summa: 37 yhteenlaskettava: 4567 summa: 4604 yhteenlaskettava: 0
Ikuinen silmukka: Kirjoittamalla while-silmukkaan ehto joka on aina totta, tulee siitä ikuinen silmukka
while True:
print("Help, I'm stuck in a loop.")
Ikuinen silmukka voidaan pysäyttää CTRL-C näppäinyhdistelmällä komentorivillä. Ikuisenkin silmukan voi päättää silmukan sisällä break-käskyllä.
Ikuinen silmukka on hyödyllinen, kun emme etukäteen tiedä milloin silmukka lopetetaan.
while True:
syöte = input("Anna komento: ")
if syöte == "lopeta":
break
print("Suoritetaan komento", syöte)
Johdanto: | |
---|---|
Tietotyypit ja tietorakenteet: |
Luvut - Merkkijonot - Lista - Monikko (tuple) - Sanakirja - Joukko (set) |
Ohjausrakenteet | |
Muut kielen rakenteet: |
Moduuli - Luokka - Funktio - Virheidenhallinta - Tiedosto |
Graafinen käyttöliittymä: | |
Harjoitustehtäviä: | |
Lisätiedot ja lähteet: |