17 文字入力(readLine)

| コメント(0)

キーボードからの文字入力を取り込むプログラムは下記です。

import java.io.*;
class Sample {
    public static void main(String[] args) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        try {
            String line = reader.readLine();
            System.out.println("入力文字は" + line);
        } catch(IOException e) {
            System.out.println(e);
        }
    }
}

キーボードには例外が発生します。try catch が組み込まれています。
エラー IOException  (In/Outの例外)って。。。

調べても詳しい説明がないのですが、PCのキー入力だけが入力だけでなく
システム組込み(レンジや洗濯機)のキーなどにも対応するからエラーをチェックするらしいです。

BuffereReader、InputStreamReader、readLine() はjavaの後半に習います。

とりあえず、今は太字の部分の入力プログラムを覚えてしまいましょう。

問題17
三択問題を作ってみよう。

ヒント

問題は下記の配列を使い。[i][0]に問題、[i][1]に解答が入っています。

String[][] toi = {
            {"メソッドの名前で使えるのは?  ①1_count ②count_1 ③count-1","2"},
            {"参照型String変数のメモリの格納場所は? ①スタック領域 ②ストリング領域 ③ヒープ領域" ,"3"},
        };
正解の判定は、入力の値 line との比較は文字列同士なので、
 if ( toi[i][1].equals(line) ) { となります。
あとは、for 文で問題数を繰り返しましょう。
上の例外を参考に Try { 文を忘れずに。。。
---------------------------------------------------------------------------------------------------
import java.io.*;

public class Sample {
    public static void main(String[] args) {
        String[][] toi = {
            {"メソッドの名前で使えるのは?  ①1_count ②count_1 ③count-1","2"},
            {"参照型String変数のメモリの格納場所は? ①スタック領域 ②ストリング領域 ③ヒープ領域" ,"3"},
        };
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        for (int i=0; i<toi.length; i++) {
            System.out.println("問題" + (i+1) + "-" + toi[i][0] );
            try {
                String line = reader.readLine();
                if (toi[i][1].equals(line)) {
                    System.out.println("正解");
                } else {
                    System.out.println("不正解。" + toi[i][1] + "が正しい");
                }
            } catch (IOException e) {
                System.out.println(e);
            }
            System.out.println("");
        }
    }
}



コメントする