我想知道在用户提供可接受的值之前用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);
答案 0 :(得分:3)
您正在关闭关闭下划线流的Scanner
(scanNumber.close();
),因此在第二次迭代中,您尝试使用已关闭的流创建新的Scanner
,因此异常
只需删除scanNumber.close();
语句,就不应再发生此异常了。
除此之外,您发布的代码会尝试在String
变量(int
)中存储myNumber = scanNumber.nextLine();
,所以我猜这不是产生异常的代码因为这不会编译。