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

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

じゃあ、論理エラーを
見ていこう。

さっきの実行結果の最後の行。
論理エラーテストの結果を
よく見てくれ。

なんか計算おかしいだろ。
えー・・・
どこかおかしかったっけ?
うーん・・・

・・・・!?

あ、ほんとだ!
「100を100で割ると100です。」
になってる。

100を100で割ったら1だよね。
 
全然気が
つかなかった。。。
 
実行結果(出力ウィンドウ):論理エラー
実行結果(出力ウィンドウ)


ちゃんと終わるけど
結果がおかしい。
つまり、これが論理エラー。

じゃあ、
なんでこうなったのか、
どうしたら正しい結果が
出るのか。

調査して修正してくれ。
エラー
メッセージ
出てないでしょ。
もしかして
プログラムが
壊れちゃった
のかな。
えー、どうしてだろう。

このコードって
100を変数 b で割って
その結果を表示してるだけ
だよね。

えーと、
bは100で初期化されて、
それ以降は変えてないし・・・。

うーん。
bの値がどっかで変わっちゃてる
のかな。
 

デバッグテスト用コード
(KotoDebugのKDMain.java)38行目~
 
・・・    
038       //*******************  
039       //論理エラーテスト  
040       System.out.println("");  
041       System.out.println("********** 論理エラーテスト結果 **********");  
042       System.out.println("");  
043    
044       int b = 100;  
045       System.out.println("100を" + b + "で割ると" + (100/a) + "です。");  
・・・  
皆さんも何がおかしいか考えてみてください。

     

そうだ!

表示する行を
ブレークポイントで止めて
bの中身を見てみよう!
そうすれば
どこで変わったか
分かるかも!
 
おっ!いいぞ!

bの値を調べて
みよう。
 
デバッグ:エラー内容の確認(論理エラー)
エディタウィンドウ



えっと・・・
計算行で止めてみたけど・・・

えっと、bの値は・・・

うん、ちゃんと100に初期化
できてる。
はーい。

おっけーね。
問題なし。
 
 
デバッグ:エラー内容の確認(変数の値の確認)
エディタウィンドウ


あとは
計算式の方を見てみると・・・

あれ?なんで!?
bの値が「1」になってるよ???
同じbなのになんで?なんで?


うん???

あれー!!
これ変数「b」じゃなくて
「a」じゃないの!
なんでー???

こんなことに
気がつかなかった!
今回は
一番単純な
例ね。
そ、エラーの原因は単純。
書き間違い。

「b」って書かなきゃ
いけないところを
間違えて
「a」って書いちゃってるの。


こんなバカバカしいのが
意外と気がつかないもんだろ。

これが論理エラーの例ね。
 
デバッグ:エラー内容の確認(コードの書き間違い)
エディタウィンドウ



間違ってた部分を直して
実行したら直ったー!!


「100を100で割ると1です。」

正解!
はーい。

これで修正全部完了。

デバッグの練習おしまいね。
やった。
おしまい。
 

デバッグテスト用コード
(KotoDebugのKDMain.java)38行目~
 
・・・    
038       //*******************  
039       //論理エラーテスト  
040       System.out.println("");  
041       System.out.println("********** 論理エラーテスト結果 **********");  
042       System.out.println("");  
043    
044       int b = 100;  
045       System.out.println("100を" + b + "で割ると" + (100/b) + "です。");  
・・・  
黄色の部分を修正して実行して下さい。
 
実行結果(出力ウィンドウ):論理エラーの修正
実行結果(出力ウィンドウ)


ううーん・・・
でもやっぱり難しいー。

けど面白いー!!
パズルみたいー!
解けた!
幸せな人ねー。

あなた。
今回の敵は
「思い込み」
だね!
地獄だと
思うんだけど。

まあ、本番は
これからか。

ククク



計算の例でも
面白かった。

ごめんね、
なぽちゃん。。。
はいはい。

・・・これが
面白いんだ。

  デバッグの基本のまとめ

デバッグの
基本的な機能とやり方は
こんな感じ。


便利な機能はまだまだ
たくさんあるからね。
これからも見ていこう。
はいっ。

お願いします!
これでもかって
ぐらい、たくさん
あるよ。
いろいろ
あるんだ。
 

デバッグの基本のまとめ
エラーの種類
実行時エラー
・論理エラー
 
エラーの原因
・コードの問題
・コード以外の問題
・複合的な問題
 
IDEの機能を使う
・エラー表示
ブレークポイント
・変数のウォッチ
・ステップ実行
 

 
 

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