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

最佳答案

您正在关闭ScannerscanNumber.close();),这会关闭下划线流,因此在第二次迭代中,您尝试使用封闭的流创建新的Scanner,因此是例外。

只需删除scanNumber.close();语句,就不会再出现此异常。

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

10-02 07:04