広告
  サイト内検索:
<Let's create a game!> Introduction of programming for absolute beginners English
 

SESSION 11 その42
デバッグの基本 つづき

これで
ステップ実行の説明はおしまい。

それじゃ、
ブレークポイントと
ステップ実行を使って
エラーを探していこう。


ブレークポイントを立てた行の
変数の値と計算が正しいか
順番に確認して行ってくれ。


「続行」のボタンを使うと
次のブレークポイントまで
一気に進めるから便利だよ。

出力ウィンドウの
結果も一緒に
見てね。
「続行」で、次の
ブレークポイントまで
実行できるんだ。
最初のaの値が3で
今1引いたから2だよね。
合ってる。

計算も100/2だから50。
問題ないね。

次の行に進めて
aの値は・・・

これも問題ないんじゃ
ないかな。
 
デバッグ:ブレークポイントとステップ実行(変数の値の確認1)
 
デバッグ:ブレークポイントとステップ実行(計算結果の確認1)
エディタウィンドウ
 
 
 
デバッグ:ブレークポイントとステップ実行(変数の値の確認2)
 
デバッグ:ブレークポイントとステップ実行(計算結果の確認2)
エディタウィンドウ



ここで
実行したら
エラーになるよ。
じゃあ、最後のポイント。
エラーの直前に
進めて調査してくれ。

ほら、変数の中身が
「0」だから・・・


これで分かっただろ?
 
あれ!?

計算式ドラッグしても
計算結果が
表示されない!


壊れちゃったのかな?
  うそー

なんでー
 
 
デバッグ:ブレークポイントとステップ実行(変数の値の確認3)
 
デバッグ:ブレークポイントとステップ実行(計算結果の確認3)
エディタウィンドウ


もう答え
言っちゃってる
よね?
もうー、壊れてないってば!

何で表示されないかって言うと
計算できないから!

ほら、「0」で割り算は・・・

これで分かっただろ?
 
えー・・・

この変数の「0」が
「/ by ZERO」と
関係あるって事?


うーん、やっぱり、
分かんないや。。。
  あたし
0点て
こと?
 


あのね、ことちゃん・・・

エラーメッセージの
「/ by ZERO」の「/」は
割り算の記号!


変数 a に入ってるのが
「0」でしょ!
つまり、計算が「100/0」。
100をゼロで割ったってこと!


ゼロで除算はできないって
学校で習ったでしょ!

小学校?だっけ?
そ、そうだっけ?

あははー。
忘れちゃったー、ごめんー。

それが、エラーの原因
だったんだね。。。
だめだ
こいつ・・・。
そう言えば
やったような
ないような。


はるーか
大昔の事だから
忘れてても
しょうがないか。

おばちゃーん。

キヒヒ。
もう!

ほんの
ちょこっと
だけ前!

     

じゃあ、エラーを無くすために
0で割らないように修正しよう。


今回は、
変数 a の初期化を
3から4に増やして

4つ目の計算のaの値を
1になるようにしよう。


修正して実行してくれ。
かいけつー
分かったー
はいっ。
修正して実行したら・・・

あっ、エラーが消えた!

さっきは、3つしか
計算結果が出てなかったけど、
今度は4つ全部出てる。

4つ目の計算が
100/1
になったからだね。


やっぱり
0で割ってたのが原因
だったんだね!
 

デバッグテスト用コード
(KotoDebugのKDMain.java)20行目~
 
・・・    
020       //*******************  
021       //実行時エラーテスト  
022      System.out.println("");  
023      System.out.println("********** 実行時エラーテスト結果 **********");  
024      System.out.println("");  
025      
026      int a = 4;//変数a を 4で宣言して初期化  
027      System.out.println("100を" + a + "で割ると" + (100/a) + "です。");  
028      
029       a -= 1;  
030       System.out.println("100を" + a + "で割ると" + (100/a) + "です。");  
031      
032       a -= 1;  
033       System.out.println("100を" + a + "で割ると" + (100/a) + "です。");  
034      
035       a -= 1;  
036       System.out.println("100を" + a + "で割ると" + (100/a) + "です。");  
・・・  
黄色の部分を修正して実行して下さい。
 
実行結果(出力ウィンドウ):実行時エラー修正
実行結果(出力ウィンドウ)


今見てきたのが
実行時エラーだよ。

じゃあ、次に
論理エラーの例を
見ていこう。
こうやって
エラーの内容を見て
1つづつ解決して
いくんだね。
お前には
例になら
なかった
けどな!
ごめんー。

でも、なんとなく
分かったから。

後で復習するね!


     

でも、
Javaのコードって
見れるんだねー。

びっくりしたー。
秘密じゃないんだ!
Javaは
オープンソースだからね。
中のコードも自由に
見れるんだよ。

決まりを守れば
改変することだってできる。

ここら辺についてはそのうちね。
すごーい。

なんか
緊張するー。
ちなみに
中を見ても
Javaは
まったく
壊れません。

 
 

広告
home もくじ 前のページを読む 次のページを読む
  サイト内検索:
広告
お勧めの姉妹サイト
leafdays - リーフデイズ 超初心者のための園芸入門 - 楽しい趣味のガーデニング -
広告