メインループと入出力処理 つづき |
|
 |
|
 |
|
クイズゲーム 入出力処理
(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? |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
 |
後で復習
するね。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
う、うーん。
でも、本当はちょっと
なんか、もやもやするの。
理由はよく分かんない
んだけど。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
受け取る・・・
受け取る・・・ |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
まあ、今は分かんなくても
取り合えず進めていくよ。
進めていけば分かる事も
あるしね。
気付いたら質問してくれ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
じゃあ次に、
このコードに
「問題を出す処理」
を追加しよう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
 |
今回のに
追加していくよ。 |
|
|
|
うひょひょ
年頃の娘が
もやもや・・・ |
 |
|
 |
もやし大好き! |
|
|
いえーい
残念でしたー |
 |
|
 |
ちぇっ |
|
|