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

SESSION 10 その18
メインループと入出力処理 つづき
  出力処理


クイズゲーム 入出力処理
(KotoQuizのKQMain.java)35行目~
 
・・・    
035               /////////////////////////////////////////////////////  
036               //実行と描画処理  
037    
038               //テスト用:見出し表示  
039               System.out.println("入力して下さい>");  
040    
・・・  
解説図 番号3を参照して下さい
 

 
次に出力処理。
メインループの最初に
出力処理を書いたよ。

今回使うのは標準出力。
つまり、
今までと同じ「出力ウィンドウ」だ。

だからprintln()で文字を出力
すればOK。
 
今までと
やり方は同じだね。

今回はテスト用に
「入力してください」の
メッセージを出している
んだね。
 

  入力処理


クイズゲーム 入出力処理
(KotoQuizのKQMain.java)41行目~
 
・・・    
041  /////////////////////////////////////////////////////
042    //キー入力処理 そのまま書き写してください ここから  
043    int tmpInputNum = 0;//入力番号初期化  
044    try {  
045          //初期化処理  
046          final int IMPUT_MAX = 3;//最大入力値  
047          //キー入力読込処理(int型)  
048          java.util.Scanner sc = new java.util.Scanner(System.in);  
049          int inputInt = sc.nextInt();  
050          //入力値チェックと入力番号への代入  
051          if (inputInt > 0 && inputInt <= IMPUT_MAX) {  
052                 tmpInputNum = inputInt;  
053          } else {  
054                 System.out.println("※ コマンドは" + IMPUT_MAX + "以下で入力して下さい ※ ");  
055          }  
056   } catch (Exception e) {  
057           System.out.println("※ 数字以外は入力しないで下さい ※ ");  
058   }  
059   //キー入力処理 そのまま書き写してください ここまで  
060   /////////////////////////////////////////////////////  
061      
062   //入力番号を受け取る  
063   inputNum = tmpInputNum;  
・・・  
解説図 番号4を参照して下さい
 

「ここから」~
「ここまで」
の間は無視ね。
覚えとこ。
次に入力処理だ。

画面に見出しを表示をした後
ユーザーからの番号入力を待つんだよ。

今回のゲームは標準入力を使う。

このキー入力処理は
標準入力から入力キーを取得して
変数 tmpInputNumに入れる処理
なんだよ。


でも、さっきも言ったけど
今回はブラックボックスとして扱う。
今は中身は分からないでいい。
 
うーん、
知りたかったなあ。

クラスを勉強した後なら
分かるんだよね。

後で復習してみよっと。
 


理解しておいてほしいのは
この入力処理の仕様だ。

こんな感じで作ったよ。
内容が分からないでも
どういう動作をするか
は知っておかないとね。

 
 
 
 
キー入力処理の仕様
 
 
・入力された値を変数tmpInputNumに入れる。
・入力があるまで停止して待つ。
・数字を入力した後、Enterキーを押す必要がある。
・数字以外は入力できない。エラー扱い。
 
 注意: ご使用の環境により、Enterキーを2回押さないと入力が完了しなく
なる場合があるようです。
そのままでも特に問題はありませんが、IDEを再起動すると直ります。


ループの
最初に
戻るのね。
で、ブラックスボックス専用の
変数 tmpInputNumから
ゲーム用の変数 inputNumに
写して受け取ってるんだよ。

俺達が作りやすいようにね。

おまえは、inputNumに
値が入った所から考えて
くれればいい。

 
そうなんだ。
受け取ってるんだ。

あたしはここが入力処理
だと思えばいい
んだね。
  今は我慢ね。

んー、
残念。。。
 
 

クイズゲーム 入出力処理
(KotoQuizのKQMain.java)41行目~
 
・・・    
041  /////////////////////////////////////////////////////
042    //キー入力処理 そのまま書き写してください ここから  
043    int tmpInputNum = 0;//入力番号初期化  
044    try {  
045          //初期化処理  
046          final int IMPUT_MAX = 3;//最大入力値  
047          //キー入力読込処理(int型)  
048          java.util.Scanner sc = new java.util.Scanner(System.in);  
049          int inputInt = sc.nextInt();  
050          //入力値チェックと入力番号への代入  
051          if (inputInt > 0 && inputInt <= IMPUT_MAX) {  
052                 tmpInputNum = inputInt;  
053          } else {  
054                 System.out.println("※ コマンドは" + IMPUT_MAX + "以下で入力して下さい ※ ");  
055          }  
056   } catch (Exception e) {  
057           System.out.println("※ 数字以外は入力しないで下さい ※ ");  
058   }  
059   //キー入力処理 そのまま書き写してください ここまで  
060   /////////////////////////////////////////////////////  
061      
062   //入力番号を受け取る  
063   inputNum = tmpInputNum;  
・・・  
解説図 番号5を参照して下さい


それから、
入力されたキーの
テスト確認用

値を出力するようにしてる。

今だけね。
表示しないと
何が入力されたか
テストできないもんね。
これは
いらなくなるから
消しちゃうよ。
いらないんだ。
 

クイズゲーム 入出力処理
(KotoQuizのKQMain.java)65行目~
 
・・・    
065   //テスト用:入力結果表示  
066   System.out.println("入力された値は " + inputNum + "です。");  
067      
068   //表示終了の区切り  
069   System.out.println("");  
070   System.out.println("######################################################");  
071   System.out.println("");  
・・・  
解説図 番号6を参照して下さい


最後に区切り処理。

これは
1回のループの区切り
として出力してるよ。


つまり、キー入力が終わって
ループの最後に表示される。
シャープで
出来た
フッターね。

他の記号とか
長さとか
自由に変えて。
やった。

でも
シャープも
分かりやすくて
いいかも。
画面の終わりの
目印みたいな感じね。


表示してからキー入力・・・
処理の最後ってことね。
 

クイズゲーム 入出力処理
(KotoQuizのKQMain.java)65行目~
 
・・・    
065   //テスト用:入力結果表示  
066   System.out.println("入力された値は " + inputNum + "です。");  
067      
068   //表示終了の区切り  
069   System.out.println("");  
070   System.out.println("######################################################");  
071   System.out.println("");  
・・・  
解説図 番号7を参照して下さい

     

というわけで
このコードはこんな流れで
処理を繰り返しているよ。

以上、
入出力処理の解説終わり。


ここまではOK?

はーい、
大体大丈夫です!


 
後で復習
するね。


う、うーん。

でも、本当はちょっと
なんか、もやもやするの。


理由はよく分かんない
んだけど。
受け取る・・・
受け取る・・・
 
まあ、今は分かんなくても
取り合えず進めていくよ。

進めていけば分かる事も
あるしね。
気付いたら質問してくれ。



はいっ。
お願いします。

じゃあ次に、
このコードに
「問題を出す処理」
を追加しよう。
 

今回のに
追加していくよ。

     

うひょひょ

年頃の娘が
もやもや・・・
もやし大好き!


いえーい

残念でしたー
ちぇっ

 
 

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