摆脱java.util.NoSuchElementException错误

时间:2018-01-12 17:54:11

标签: java

我想知道在用户提供可接受的值之前用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);

1 个答案:

答案 0 :(得分:3)

您正在关闭关闭下划线流的ScannerscanNumber.close();),因此在第二次迭代中,您尝试使用已关闭的流创建新的Scanner,因此异常

只需删除scanNumber.close();语句,就不应再发生此异常了。

除此之外,您发布的代码会尝试在String变量(int)中存储myNumber = scanNumber.nextLine();,所以我猜这不是产生异常的代码因为这不会编译。