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

番外編 自分で作ってみよう その8
初心者がよくする間違い つづき

うーん、うーん・・・

IDEを再起動したけど
やっぱりうまくいかない・・・

コンピューターを
再起動したらいいのかな?

どこが壊れてるのかな?
やっぱり修理するしか・・・
はいっ、そこまで!

時間を区切って
考えよう。

結構考えたからね。
説明するよ。
うーん・・・
説明
しまーす。


もうちょっとで
分かりそうだから!

ねっ、ねっ!
お願い、
もうちょっと待ってー
気持ちは
分かるけど。

原因分かってる
からだめー。

  間違いの場所の思い込み

エラーの原因はそこ。

ループフラグの初期値が
falseになってる。

だから、
1回もループしないし
何も実行されないんだよ。

これは論理エラーだね。
あ、そうか!

loopFlgの初期値は
最初はtrueにしないと!

これじゃループ終了だ。
ブロックの中の
処理は実行
されないよ。
あたし
勘違いしてた?
 

ことのコード(KotoBeginnerErrorのKBEMain.java)12行目~
(実行時エラー修正済み)
・・・      
012   public class KBEMain {  
013    
014       //********************************************  
015       // 定数  
016       //********************************************  
017    
018       //********************************************  
019       // 変数  
020       //********************************************  
021       private static boolean loopFlg = false;//ループフラグ loopFlgの初期値が
falseになっている
022       private static int inputNum = 0;//入力番号  
023         
024       /**  
025       * @param args the command line arguments  
026       */  
027       public static void main(String[] args) {  
028       // TODO code application logic here  
029    
030           //********************************************  
031           // メイン処理  
032           //********************************************  
033           while (loopFlg) { loopFlgがfalseなので
1回もループしない
034   ブロック内の処理は
実行されない
035               //テスト:番号入力表示  
036               System.out.print("テスト:番号を入力して下さい>");  
037    
038               //入力番号を受け取る  
039               inputNum = scanInputData();  
040    
041               //テスト:入力された番号の表示  
042               System.out.println("テスト:入力された番号は " + inputNum);  
043                     
044               //表示終了の区切り  
045               printSeparateMark();  
046      
047           }      
048       }  
・・・      
loopFlgがfalseのためwhileブロックの処理は1回も実行されない。
そのため何も表示されなかった


じゃあ、trueに修正して
実行してみるね。

・・・


やった!実行できたよ。

まだ止める処理が無いから
停止ボタンを押さないと
停止できないけど、
ちゃんとキー入力もできたよ。

原因はここだったんだね。
よかった!

コンピューター
壊れて
なかったんだ。
そんなに
壊れないってば。
そういうこと。
 

ことのコード(KotoBeginnerErrorのKBEMain.java)12行目~
(実行時エラー修正済み)
・・・    
012   public class KBEMain {
013  
014       //********************************************
015       // 定数
016       //********************************************
017  
018       //********************************************
019       // 変数
020       //********************************************
021       private static boolean loopFlg = true;//ループフラグ
022       private static int inputNum = 0;//入力番号
023       
024       /**
025       * @param args the command line arguments
026       */
027       public static void main(String[] args) {
028       // TODO code application logic here
029  
030           //********************************************
031           // メイン処理
032           //********************************************
033           while (loopFlg) {
034  
035               //テスト:番号入力表示
036               System.out.print("テスト:番号を入力して下さい>");
037  
038               //入力番号を受け取る
039               inputNum = scanInputData();
040  
041               //テスト:入力された番号の表示
042               System.out.println("テスト:入力された番号は " + inputNum);
043                   
044               //表示終了の区切り
045               printSeparateMark();
046    
047           }    
048       }
・・・    
黄色の部分が改変部分です。
書き写して実行して下さい。
 
実行結果(出力ウィンドウ)



こういう時は、怪しい行に
ブレークポイントを立てて
調べよう。


今回の場合だと、
実行結果は真っ白。
何も実行されてないだろ。

whileの行で止めてから
どこまで実行されたか
ステップ実行で進めれば
原因が分かったね。
なるほど!

そうすれば、ループの
中に入らないから
エラーを探すヒントに
なったんだ。
覚えとこうな。
あー!
ブレークポイント
使えばよかったんだ!
 
ブレークポイントとステップ実行で、実行された内容を1つ1つ調べる
エラー原因の調査:ブレークポイントとステップ実行を使う1
エラー原因の調査:ブレークポイントとステップ実行を使う2
エラー原因の調査:ブレークポイントとステップ実行を使う3
エラー原因の調査:ブレークポイントとステップ実行を使う4


はまっちゃうの。

焦れば焦るほど
てんぱって
どんどん視野が
狭くなるんだよな。

底なし沼ー
という訳で
今回の一番の問題は、
機械故障という「思い込み」


面白いもんだよな。
人間って一度そこが原因だと
思い込むと、そこばっかり
考えちゃう。

全然違う場所が原因でもね。

これは初心者に限らないけどね。
 
エラーを探す時は
「思い込み」に
注意するね。
  あたしだ・・・

空回りしてた。。。
 

     

じゃあ、これで
「思い込み」の場合の
説明はおしまい。

徐々にやり方に慣れて
いこうな。
ありがとうございました。

これでプログラムを
実行できるようになったね。
はあ。

ひと段落。
やった。


うーん。
でも、あたし、なんで
falseにしちゃった
んだろう・・・

あ、もしかして・・・
おっ、俺じゃないよ!

俺、書き換えて
無いッスから!
うーん・・・。
ビクッ  
ほんとっす!
信じてー。


狼少年に
しないでー!


あたしオオカミウオ
じゃないから!
焼き魚定食反対ー!
無罪!冤罪!

弁護士呼んで
くださーい!
この怯え方・・・。

あたしって
いったい・・・。
あたし
何も言って
無いんだけど。

 
 

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