キーボードから入力をするクラスを作成したいのですがうまくいきません。
import java.io.*; public class Input{ private String prompt; private final String ERROR_INPUT_DOUBLE = "入力値は実数ではありません。"; private final String ERROR_INPUT = "エラー:入力に誤りがあります。"; private void setPrompt(String prompt){ this.prompt = prompt; } private String input() throws IOException{ String line = ""; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); return line; } public double inputDouble(String prompt){ this.setPrompt(prompt); System.out.println(this.prompt); try{ String value = this.input(); double n = Double.parseDouble(value); return n; }catch(Exception s){ System.out.println(ERROR_INPUT_DOUBLE); return this.inputDouble(prompt); } } public String inputString(String prompt){ this.setPrompt(prompt); System.out.println(this.prompt); try{ String n = this.input(); return n; }catch(Exception s){ System.out.println(ERROR_INPUT); return this.inputString(prompt); } } }
public class Main{ public static void main(String[] args){ Input in = new Input(); double n = in.inputDouble("実数を入力してください:"); System.out.println("入力された実数 "+ n +"です。"); } }
Inputクラスのprivate String input() throws IOExceptionでのString n の部分になにも入力しなかったときは「変数 line は初期化されていない可能性があります。」というエラーが出てしまいました。
初期値として""やnullをいれてみたらコンパイルエラーは発生しなくなったのですが、
実数を入力してください:
入力値は実数はありません。
のループを繰り返した後、
at Input.inputDouble(Input.java:25)
がたくさん出てきてしまいます。
何処が間違っているのかわからないのでご教示お願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。