デバッグとは、プログラムの間違い(バグ)を見つけて修正することです。
プログラムは必ずバグが出ます。
大切なのは「バグをなくすこと」ではなく、
バグを正しく見つけられる力をつけることです。
主な原因は次の3つです。
つまり、
ロジックのズレが原因です。
int total = 0;
for (int i = 1; i <= 5; i++) {
total = i;
}
System.out.println(total);
1~5まで足し算するつもりなのに、結果は「5」になります。
なぜでしょうか?
total = i;
となっているため、
毎回「上書き」しているからです。
正しくは:
total += i;
です。
変数の変化を書き出します。
「思っている値」ではなく「実際の値」を確認します。
「本当はどうなってほしいのか」を明確にします。
どこで期待と違う値になったのかを探します。
条件式・更新式・初期値を順番に確認します。
途中で値を表示させる方法です。
System.out.println("i=" + i + " total=" + total);
ループの中に入れると、
変数の変化が見えるようになります。
トレースができる人は、
デバッグも必ず上達します。
バグ修正は「感覚」ではなく「確認作業」です。
書く力よりも、
直す力のほうが重要です。
デバッグ力がつくと、プログラミングは一気に楽になります。