無限ループ
メニューを表示するにはスワイプしてください
無限ループとは、制御条件が決してFalseにならないために終了しないループのこと。これらのループはプログラムのフリーズやクラッシュの原因となるため、明確な意図がない限り避ける必要がある。
条件が常にTrueの場合、ループは永遠に実行される。例えば、旅行に関連したシナリオを用いると次のようになる。
# Infinite loop example
while 'Barcelona' in ['Monako', 'Liverpool', 'Barcelona', 'Munchen']:
print('I found Barcelona!')
- 条件式
'Barcelona' in [...]はリスト内にTrueが存在するため常に'Barcelona'となる。これはwhile True:と同じ意味になる; - ループは
'I found Barcelona!'を止まることなく繰り返し出力する。
不適切に更新されたループ変数も無限ループの原因となる場合があります。例えば:
# 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
- インデックス
iが増加しないため、条件i < len(travel_list)は常にTrueとなる; - ループは最初の都市(
'Monako')を無限に出力し続ける。
無限ループを避けるためには、ループ条件が最終的にFalseになるように設計する必要があります。つまり、条件は動的であり、ループの実行中に変化しなければなりません。さらに、変数(カウンタなど)を使ってループを制御している場合は、その変数がループ内で適切にインクリメントまたは更新され、条件が無限にTrueのままにならないように注意してください。
1. 次のコードの問題点は何ですか?
2. このループが永遠に実行されないようにするには、どのように修正すればよいですか?
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 8
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 1. 章 8