中級者向け:
※以下の内容は、中級コースが修了済みのユーザーが対象となります。
※以下の内容は、中級コースが修了済みのユーザーが対象となります。
実際に具体例を見てみましょう。
以下は無限ループのコードになります。indexが0のまま変化しないため、while文の述語
index < length
が常にtrueを返すため、無限ループに陥ります。
def addEveryOtherElement(intArr):
length = len(intArr)
index = 0
total = 0
while index < length:
if index % 2 == 0:
total += intArr[index]
# index += 1
return total
無限ループに陥ったときは、以下のように適切な箇所でループ処理を止めてデバッグすると原因を早く特定できます。
def addEveryOtherElement(intArr):
length = len(intArr)
index = 0
total = 0
# カウントする変数を追加
cnt = 0
while index < length:
if index % 2 == 0:
total += intArr[index]
# index += 1
# カウントを1ずつ増加させる
cnt += 1
# 意図的にbreakを使ってエスケープ
if cnt < 20:
print(index)
break
return total
特に連結リストやwhileループや再帰系の処理を行う時に陥りやすいので注意しましょう。