無限ループ内のデバッグ方法がわかりません

Written by Recursion
11月 7, 2021
中級者向け:
※以下の内容は、中級コースが修了済みのユーザーが対象となります。

実際に具体例を見てみましょう。

ID63リスト内の要素の足し合わせ

数字が入った箱 intArr が与えられるので、全ての奇数番目を足した値を返す関数を定義してください。

以下は無限ループのコードになります。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ループや再帰系の処理を行う時に陥りやすいので注意しましょう。

関連記事
  • Javaのクラス内に存在するEは何を意味していますか?
  • Recursionのエディタで使えるおすすめのショートカット
  • コンソールに出力が多く出てきます。なぜですか?
  • コンソールにundefinedと表示されますが、これはバグでしょうか?
  • デバッグの方法がわかりません
  • エディタに何を書けばいいのかわかりません
  • 書いたコードをリセットする方法を教えてください
Leave A Comment コメントをキャンセル

CAPTCHA


email confirm*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

カテゴリー
  • コンテンツ 0
    • 一般 7
    • 機能 7
    • 学習方法 4
  • コーディング問題 0
    • 一般 5
    • 問題を解く 5
    • エディタ 8
    • テストケース 5
    • テスト & 提出 4
    • 解説 3
  • コミュニティ 0
    • 一般 2
    • 機能 1
  • アカウント設定 0
    • 一般 5
    • カスタマイズ 3
    • 退会 2
  • 請求書 0
    • 一般 2
    • お支払い 6
  • その他 3
よく読まれている記事
  • 学習ロードマップの使い方
  • 学習期間はどれくらいですか?
  • 初級の2周目をJavaでするべきか、中級に進むべきでしょうか?
  • コミュニティはどうやって入ることができますか?
  • 問題の解答解説はどうやって見ることができますか?
  • プロモコードの使い方を教えてください
  • コース内のエディタはどうやって学習するのがおすすめですか?
  • 中学校の数学の知識しかありませんが、ついていけると思いますか?
  • 解答解説はどのように勉強するべきですか?
  • コードの貼り付け方がわかりません
エディタ
  • 無限ループ内のデバッグ方法がわかりません
  • Javaのクラス内に存在するEは何を意味していますか?
  • Recursionのエディタで使えるおすすめのショートカット
  • コンソールに出力が多く出てきます。なぜですか?
  • コンソールにundefinedと表示されますが、これはバグでしょうか?
  • デバッグの方法がわかりません
View All 7  
  • Recursion
  • 公式ブログ
  • © 2022 Recursion, Inc All Rights Reserved.

よく検索されるワード:コミュニティ, 解答, プロジェクト