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 に割り当てられないのはなぜですか?
私はそれが参照渡しと値渡しに関係があると分類し、それらの原則を理解しています。私はこれを完全に理解していますが、まだ解決できません。
私を助けてください!前もって感謝します。