Ääretön Silmukka
Ääretön silmukka on silmukka, joka ei koskaan pääty, koska sitä ohjaava ehto ei koskaan arvioidu False
-arvoksi. Nämä silmukat voivat aiheuttaa ohjelman jumiutumisen tai kaatumisen, joten niitä tulisi välttää, ellei niitä ole nimenomaisesti tarkoitettu.
Jos ehto on aina True
, silmukka jatkuu ikuisesti. Esimerkiksi, käytetään matkailuun liittyvää tilannetta:
python# Infinite loop examplewhile 'Barcelona' in ['Monako', 'Liverpool', 'Barcelona', 'Munchen']:print('I found Barcelona!')
- Ehto
'Barcelona' in [...]
on ainaTrue
, koska'Barcelona'
on läsnä listassa. Se on sama kuinwhile True:
; - Silmukka tulostaa jatkuvasti
'I found Barcelona!'
ilman mitään tapaa pysäyttää sitä.
Väärin päivitetty silmukkamuuttuja voi myös johtaa loputtomaan silmukkaan. Esimerkiksi:
python# Another infinite loop examplei = 0travel_list = ['Monako', 'Luxemburg', 'Liverpool', 'Barcelona', 'Munchen']while i < len(travel_list):print(travel_list[i])# Missing increment: i += 1
- Indeksiä
i
ei koskaan lisätä, joten ehtoi < len(travel_list)
on ainaTrue
; - Silmukka jatkaa ensimmäisen kaupungin (
'Monako'
) tulostamista loputtomasti.
Välttääksesi äärettömät silmukat, varmista, että silmukan ehto on suunniteltu lopulta arvioitumaan False
:ksi. Tämä tarkoittaa, että ehdon on oltava dynaaminen ja muututtava silmukan suorituksen aikana. Lisäksi, jos käytät muuttujaa (kuten laskuria) ohjaamaan silmukkaa, varmista, että se lisätään tai päivitetään oikein silmukan sisällä, jotta ehto ei pysy True
:na loputtomasti.
1. Mikä on ongelma seuraavassa koodissa?
2. Kuinka voit muokata tätä silmukkaa estääksesi sen pyörimisen ikuisesti?
Kiitos palautteestasi!