デバッガ
メニューを表示するにはスワイプしてください
デバッガとは何か?
デバッガは、コードをステップ実行するためのツール。 コードの実行を特定のポイントで一時停止し、デバッグモードを開始してコードの動作を確認可能。 これを行うには、停止したい行にマーカー(ブレークポイント)を設定する必要がある。
1から10までの数値の合計を計算するコードがあり、結果は55になるはずだが、実際には45が出力されている。
なぜ答えが一致しないのかを理解するため、ループの先頭にブレークポイントを設定する。
これには、行番号を左クリックし、赤いマーカーが表示されることを確認する。
こちらはスクリーンショットのコードを、より読みやすく明確に書き直したもの。
Main.java
12345678910111213package com.example; import java.util.Arrays; public class Main { public static void main(String[] args) { int result = 0; for(int i = 0; i < 10; i++) { result += 1; System.out.println(result); } } }
デバッグモード内のツール
デバッガの使い方と、デバッグモード内で利用できるツールについて簡単に説明。
-
Step Over:このボタンを使うと、コードの実行を1行ずつ進めることが可能。押すと、現在の行を実行し、次の行に移動して再度停止;
-
Step Into:このボタンを使うと、メソッドの実行内部に入ることができる。本例ではメソッドはないが、もしあればその内部の処理を確認可能;
-
Step Out:前述のボタンとは逆で、メソッドやループの実行から抜け出すことができる;
-
変数の値は、下部のウィンドウや変数の横に表示される。変数
resultの値が明確に確認でき、初期値はゼロ。
コードの反復処理
反復処理を行うために、「Step Over」ボタンをクリック。forループに入り、iループ内で作成された変数forの値が表示される。初期値はゼロに設定。
次に、「Step Over」を数回クリックして1回の反復処理を完了し、コンソールに何か表示されているか確認。変数iが1に増加し、画面には「0」が表示されていることが分かる。これは、result変数とi変数の両方が初期値ゼロであったため。0 + 0 = 0 -> これが画面に表示された内容。
他の数字をコンソールに出力する繰り返し処理は省略し、最後まで進みます。ここで、ループの主な誤りが確認できます。**0から10まで(10を含む)**の合計を表示する必要がありますが、10を含めていません。そのため、i = 9のとき、10に増加すると10 !< 10(10は10未満ではない)ため、ループを終了します。
この問題を解決するには、条件をi <= 10に変更する必要があります。これで正しい結果が得られます。
本質的には、「Step Over」ボタンを何度も押すことで、ループの誤りに気付き、修正に至りました。
Note
ここでは基本的なデバッガーツールのみを紹介しました。使い方を習得するには、自分で練習することが重要です。同様のプログラムを書いて、動作を自分で確認してみてください。デバッガーは、コードのエラーやバグの修正に役立つ非常に有用なツールです。
1. デバッガの主な目的は何ですか?
2. デバッガにおけるブレークポイントは何を可能にしますか?
3. 「ステップオーバー」デバッガボタンは何をしますか?
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください