コンソールアプリケーションでユーザーからのすべての入力を処理するメソッドを作成しようとしています。このメソッドを合計5回呼び出します。初めての状態は
a)数値は正であり、実数値(double)である必要があります
次の4回の状態は
b)数値は1より大きくなければなりません
これが私の方法です:
private static double numChk(int errNum) {
final String[] ERROR_MESSAGE = {
"\nPlease enter only positive, real-valued numbers",
"\nPlease enter only positive numbers greater than 1" };
Scanner in = new Scanner(System.in);
double tempData;
while (!in.hasNextDouble()) {
System.out.println(ERROR_MESSAGE[errNum]);
System.out.print(" Please try again: ");
in.next();
}
tempData = in.nextDouble();
// in.close();
return tempData;
}
これは、このメソッドの呼び出し例です。
do {
System.out
.println("Please enter only positive, real-valued numbers");
System.out.print(" Enter a constant: ");
mu = numChk(0);
} while (mu <= 0);
「//in.close();」に注意してください 私が書いた方法で。スキャナーを閉じなくても、この方法は正常に機能します。ただし、私の割り当てでは、開いているすべての入力ストリームを確実に閉じる必要があります。メソッドの入力ストリームを閉じて再度開くと、NoSuchElementExceptionが発生します。これらすべてをメインメソッドに入れて、最後に入力を閉じることができることはわかっていますが、これを行う方法(入力検証、複数回)があり、入力ストリーム。