Ääretön Silmukka
Pyyhkäise näyttääksesi valikon
Ääretön silmukka on silmukka, joka ei koskaan pääty, koska sitä ohjaava ehto ei koskaan arvioidu epätodeksi (False). Tällaiset silmukat voivat aiheuttaa ohjelman jumiutumisen tai kaatumisen, joten niitä tulisi välttää, ellei niitä ole tarkoituksella käytetty.
Jos ehto on aina True, silmukka jatkuu ikuisesti. Esimerkiksi matkustamiseen liittyvässä tilanteessa:
# Infinite loop example
while 'Barcelona' in ['Monako', 'Liverpool', 'Barcelona', 'Munchen']:
print('I found Barcelona!')
- Ehto
'Barcelona' in [...]on ainaTrue, koska'Barcelona'on listassa. Tämä vastaa ehtoawhile True:; - Silmukka tulostaa jatkuvasti
'I found Barcelona!'ilman mahdollisuutta pysäyttää sitä.
Virheellisesti päivitetty silmukkamuuttuja voi myös johtaa ikuiseen silmukkaan. Esimerkiksi:
# Another infinite loop example
i = 0
travel_list = ['Monako', 'Luxemburg', 'Liverpool', 'Barcelona', 'Munchen']
while i < len(travel_list):
print(travel_list[i])
# Missing increment: i += 1
- Indeksiä
iei kasvateta koskaan, joten ehtoi < len(travel_list)on ainaTrue; - Silmukka tulostaa ensimmäisen kaupungin (
'Monako') loputtomasti.
Välttääksesi ikuiset silmukat, varmista että silmukan ehto on suunniteltu niin, että se lopulta arvioituu arvoksi False. Tämä tarkoittaa, että ehdon tulee olla dynaaminen ja muuttua silmukan suorituksen aikana. Lisäksi, jos käytät muuttujaa (kuten laskuria) ohjaamaan silmukkaa, varmista että sitä kasvatetaan tai päivitetään asianmukaisesti silmukan sisällä, jotta ehto ei pysy arvossa True loputtomasti.
1. Mikä on seuraavan koodin ongelma?
2. Miten voit muokata tätä silmukkaa, jotta se ei pyörisi ikuisesti?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme