我想知道在用户提供可接受的值之前在Java中要求用户输入的正确方法。
我以为是新的Scanner(System.in);是最好的方法,但是我得到了这个错误。
int myValue = 0;
int myNumber;
do {
System.out.println("Enter a Positive Number: ");
Scanner scanNumber = new Scanner(System.in);
myNumber = scanNumber.nextLine();
scanNumber.close();
//Check for acceptable inputs
}while(myValue<=0);
最佳答案
您正在关闭Scanner
(scanNumber.close();
),这会关闭下划线流,因此在第二次迭代中,您尝试使用封闭的流创建新的Scanner
,因此是例外。
只需删除scanNumber.close();
语句,就不会再出现此异常。
除此之外,您发布的代码尝试将String
存储在int
变量(myNumber = scanNumber.nextLine();
)中,所以我猜这不是产生异常的代码,因为它将无法编译。