Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.util.NoSuchElementException:在循环内使用scanner时未发现任何行异常_Java_Exception - Fatal编程技术网

java.util.NoSuchElementException:在循环内使用scanner时未发现任何行异常

java.util.NoSuchElementException:在循环内使用scanner时未发现任何行异常,java,exception,Java,Exception,我需要在循环中获取输入,但遇到问题,比如NoSuchElementException。对这个问题不是很确定 为了提供有关我的需求的一些信息,如果用户连续键入yes,我必须执行一个函数,直到用户键入no 代码: 您关闭的扫描仪不止一个,这将关闭底层的InputStream,因此另一个Scanner无法再从同一InputStream读取数据,并且NoTouchElementException结果 将st移出while循环 Scanner st = new Scanner(System.in); //

我需要在循环中获取输入,但遇到问题,比如
NoSuchElementException
。对这个问题不是很确定

为了提供有关我的需求的一些信息,如果用户连续键入
yes
,我必须执行一个函数,直到用户键入
no

代码:


您关闭的扫描仪不止一个,这将关闭底层的
InputStream
,因此另一个
Scanner
无法再从同一
InputStream
读取数据,并且
NoTouchElementException
结果

将st移出while循环

Scanner st = new Scanner(System.in);
// Toppings
    while(true) {

      System.out.println("Do you need to add more toppings:(yes/no)");
      String decision = st.nextLine();

      if(decision.equals("yes")) {
        cake = toppingOption(cake);
      } 
      else if(decision.equals("no")) {
        st.close();
        break;
      }
      else {
        System.out.println("Wrong input, type (yes/no)");
      }
    }

我的问题不完整,在
toppingOptions
功能中,我关闭了另一个扫描仪对象,因此在我移除扫描仪对象后,关闭此工作。

虽然建议正确,但这不是问题所在。此代码中仅关闭了一个扫描仪@hien nguyen是的,你的建议就是问题所在,这只是代码的一部分,在TopingOption方法中,我有另一个扫描对象,我关闭了它,很抱歉没有提到这一点。再次感谢。
Scanner st = new Scanner(System.in);
// Toppings
    while(true) {

      System.out.println("Do you need to add more toppings:(yes/no)");
      String decision = st.nextLine();

      if(decision.equals("yes")) {
        cake = toppingOption(cake);
      } 
      else if(decision.equals("no")) {
        st.close();
        break;
      }
      else {
        System.out.println("Wrong input, type (yes/no)");
      }
    }