Python Ohjelmointi

While-silmukka

Helppo
20 min

Silmukat

Ohjelmoinnin perusteisiin kuuluu silmukat. Silmukat ovat toistuvia rakenteita, jotka suorittavat tietyt toiminnot useita kertoja. while-silmukka on yksi yleisimmistä silmukoista, ja se toistaa tiettyjä toimintoja, kunnes tietty ehto on täytetty.

while-silmukka Pythonissa

while-silmukka toistaa toimintoja niin kauan kuin tietty ehto on totta. Ohjelma tarkistaa ensin, onko ehto totta, ja suorittaa sitten silmukan. Silmukan jälkeen ohjelma tarkistaa ehtoa uudelleen ja suorittaa silmukan, jos ehto on yhä tosi. Silmukka jatkuu, kunnes ehto ei enää ole totta.

Esimerkiksi, jos haluat toistaa toiminnon viisi kertaa, voit käyttää while-silmukkaa seuraavasti:

i = 0
while i < 5:
  print("Tämä toistuu viisi kertaa.")
  i += 1

Tämä ohjelma tulostaa tekstin "Tämä toistuu viisi kertaa." viisi kertaa, koska while-silmukka toistaa toiminnon, kunnes i on suurempi tai yhtä suuri kuin 5.

Ohjelman toiminta selitetään seuraavasti:

  1. i-muuttuja asetetaan aluksi 0:ksi.
  2. Ohjelma tarkistaa ensin, onko i < 5, mikä on totta, koska i on 0.
  3. Ohjelma tulostaa tekstin "Tämä toistuu viisi kertaa."
  4. i-muuttuja lisätään yhdellä.
  5. Ohjelma tarkistaa uudelleen, onko i < 5, mikä on totta, koska i on nyt 1.
  6. Ohjelma tulostaa tekstin uudelleen ja lisää i:n arvoa.
  7. Tämä toistuu, kunnes i on suurempi tai yhtä suuri kuin 5.

Käyttökohteita while-silmukalle

while-silmukkaa voidaan käyttää monissa eri tilanteissa. Esimerkiksi:

  • Tietojen syöttö: while-silmukkaa voidaan käyttää toistamaan tietojen syöttöä, kunnes käyttäjä antaa oikean syötteen.
  • Laskeminen: while-silmukkaa voidaan käyttää laskemiseen tai numeroiden generointiin tietyn ehto saavutettu.
  • Tiedostojen lukeminen: while-silmukkaa voidaan käyttää tiedostojen lukemiseen, kunnes tiedosto on kokonaan luettu.

Tarkastellaan seuraavaa esimerkkiä, joka kysyy käyttäjältä lukuja, kunnes käyttäjä syöttää negatiivisen luvun. Ohjelma laskee myös syötettyjen lukujen summan.

summa = 0

while True:
  luku = int(input("Syötä luku: "))
  if luku < 0:
    break
  summa += luku

print("Lukujen summa on", summa)

Tässä ohjelmassa while-silmukka jatkuu loputtomiin (koska ehtona on True), kunnes käyttäjä syöttää negatiivisen luvun. Silmukan sisällä kysytään käyttäjältä luku ja lasketaan summa. Kun käyttäjä syöttää negatiivisen luvun, ohjelma katkaisee silmukan break-lausekkeella ja tulostaa lopullisen summan.

Harjoitus

Kirjoita ohjelma, joka kysyy käyttäjältä lukuja, kunnes käyttäjä syöttää kaksi peräkkäistä samaa lukua. Ohjelma tulostaa sen jälkeen syötettyjen lukujen summan, mukaanlukien viimeisen luvun.

Esimerkiksi:

Syötä luku: 1
Syötä luku: 3
Syötä luku: 5
Syötä luku: 3
Syötä luku: 2
Syötä luku: 2
Lukujen summa on 16

Tehtävät

Tehtävä 1

Kirjoita ohjelma, joka kysyy käyttäjältä lukuja, kunnes käyttäjä syöttää kaksi peräkkäistä samaa lukua. Ohjelma tulostaa sen jälkeen syötettyjen lukujen summan, mukaanlukien viimeisen luvun.

Johtopäätös

While-silmukka on hyödyllinen työkalu Python-ohjelmoinnissa. Se antaa mahdollisuuden toistaa tiettyjä koodilohkoja niin kauan kuin tietyt ehdot täyttyvät. Yhdistettynä muihin ohjelmointielementteihin, kuten ehtolausekkeisiin, while-silmukka voi auttaa ohjelmoijia toteuttamaan monimutkaisia ohjelmia.

hakatemia pro

Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.

Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.