Ääretön Silmukka
Loputon 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 suoritetaan 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 listalla. 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, 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 siten, että se lopulta arvioituu arvoon False. Tämä tarkoittaa, että ehdon tulee olla dynaaminen ja muuttua silmukan suorituksen aikana. Lisäksi, jos käytät muuttujaa (kuten laskuria) silmukan ohjaamiseen, varmista että sitä kasvatetaan tai päivitetään asianmukaisesti silmukan sisällä, jotta ehto ei pysy True-arvossa loputtomasti.
1. Mikä ongelma on seuraavassa koodissa?
2. Miten voit muokata tätä silmukkaa estääksesi sen toistumisen loputtomasti?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 5
Ääretön Silmukka
Pyyhkäise näyttääksesi valikon
Loputon 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 suoritetaan 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 listalla. 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, 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 siten, että se lopulta arvioituu arvoon False. Tämä tarkoittaa, että ehdon tulee olla dynaaminen ja muuttua silmukan suorituksen aikana. Lisäksi, jos käytät muuttujaa (kuten laskuria) silmukan ohjaamiseen, varmista että sitä kasvatetaan tai päivitetään asianmukaisesti silmukan sisällä, jotta ehto ei pysy True-arvossa loputtomasti.
1. Mikä ongelma on seuraavassa koodissa?
2. Miten voit muokata tätä silmukkaa estääksesi sen toistumisen loputtomasti?
Kiitos palautteestasi!