Tunti 10 While -silmukka

While -silmukka

Silmukat ovat ohjelmoinnissa esiintyviä rakenteita, joilla jotakin asiaa voidaan toistaa niin monta kertaa kuin halutaan. Käytät silmukoita usein käyttäessäsi tietokoneita tai kännykkää tietämättä sitä itse. Esimerkiksi jos puhelinluettelo on tallennettuna listana, sieltä voidaan silmukan avulla etsiä vaikka Matti Meikäläistä. Tietokone käyttää taustalla silmukkaa Matin etsimiseen. Tyypillisimmät silmukat ovat while ja for.

Alla olevalla videolla käsitellään while -silmukan perusteita.


While on silmukkatyyppi, joka ohjelmoinnissa tarkoittaa sitä, että jotakin asiaa toistetaan moneen kertaan. Whileä käytettäessä on mukana yleensä laskuri, joka kasvaa kunnes riittävä arvo saavutetaan ja silmukka lopetetaan. Alla on siitä esimerkki.

* Esimerkki 1.* While -silmukan käyttö. Laskuri on muuttuja, jonka arvoa kasvatetaan.


Koodi toistaa tuota tulostuskomentoa ja joka kierroksella laskurin arvo kasvaa yhdellä. Samalla kasvanutta laskurin arvoa verrataan lukuun 10 ja jos laskuri saavuttaa sen, silmukka päättyy. Osaisitko muokata koodia siten, että lause tulostetaan 100 kertaa?

Jos tuota laskurin kasvamista ei olisi olemassa, silmukka jatkaisi ikuisesti. Selainkääntäjissä tämä voi joskus jumittaa selaimen, joten älä kokeile sitä. 

Seuraavaksi vähän lisää silmukoista, tässä on monimutkaisempi esimerkki. Huomaa, että silmukassa oleva ehto on True. Se tarkoittaa, että silmukka tekee lausettaan koko ajan, ellei jokin toiminto lopeta silmukkaa. Tällä saa äärettömän helposti tehtyä ikuisia silmukoita. Tässä alla olevassa esimerkissä silmukka loppuu kun käyttäjä painaa 0. Tämän kaltaisia esimerkkejä voi käyttää esimerkiksi siihen, että ohjelma laskee annettujen lukujen keskiarvon (vaikeaa vielä tässä vaiheessa) tai vähän helpompana tehtävänä, että kone laskee annettujen lukujen summan.

Koodiin kirjoitettu komento break lopettaa silmukan jatkamisen.

* Esimerkki 2.* While -silmukan lopettaminen.


<> Tehtävä 1.
Tee ohjelma, joka tulostaa oman nimesi viidesti while -silmukan avulla.


<> Tehtävä 2.
Tee ohjelma, joka tulostaa numerot yhdestä kymmeneen​ while -silmukan avulla.


<> Tehtävä 3. Suunnittele oma ohjelma Esimerkin 2 mukaan.


<> Tehtävä 4.
Tee ohjelma, joka kysyy numeroa ja nimeä. Tämän jälkeen ohjelma tulostaa annetun nimen niin monta kertaa kuin annettu numero. Alkukyselyt on annettu valmiiksi. Vinkki, while -silmukassa voi käyttää ylärajana jotakin muuttujaa (esim. while laskuri < luku: ).

Peda.net käyttää vain välttämättömiä evästeitä istunnon ylläpitämiseen ja anonyymiin tekniseen tilastointiin. Peda.net ei koskaan käytä evästeitä markkinointiin tai kerää yksilöityjä tilastoja. Lisää tietoa evästeistä