0

Javaでinputhandlerを作ろうとしています。これはソース コード (のスニペット) です。

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Inputhandler{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public int InputInt;

public int GetInt(){    
    try{
        InputInt = br.read();
        } catch(Exception e){
            System.out.println("Input should be a number. Please try again\n");
            GetInt();
        }
    return InputInt;
    }
}

10 行目からユーザー入力を取得し、その入力を InputInt の値として設定しようとしています。ただし、プログラムを実行してメソッドを呼び出すと、次のようになります。

Inputhandler in = new Inputhandler();
int a = in.GetInt("A question"); //I would input a number like 200
System.out.println(a);

少なくとも私にはそう見える乱数が表示されます。51、48、55 のような数字です。ここで何が間違っているのでしょうか? 入力した数値が InputInt に割り当てられないのはなぜですか?

私はそれが参照渡しと値渡しに関係があると分類し、それらの原則を理解しています。私はこれを完全に理解していますが、まだ解決できません。

私を助けてください!前もって感謝します。

4

1 に答える 1