迭代时NoSuchElementException

时间:2013-01-27 15:31:38

标签: java exception java.util.scanner

这个代码在循环第一次出现时运行得非常好,但是当我再次迭代它时(执行完整程序之后)。它抛出一个NoSuchElementException,在我的代码中没有任何地方可以关闭任何Scanner,这可能是什么问题?

我还应该提一下编译器给我一个调用这个循环的方法的行,该行是:l = scan.nextInt();

Scanner scan = new Scanner(System.in);
int l;
do {
System.out.println("Please Select...:");
System.out.println("1. for ...");
l = scan.nextInt();
}
while (l < 0 || l > 4);

我的变量是小写字母“L”,所以没有人会感到困惑。

1 个答案:

答案 0 :(得分:1)

当输入中没有数据时,抛出

NoSuchElementException。在您的代码中必须如此,但只要您不提供完整的示例,就很难找到任何解决方案。我的第一个建议是使用hasNextInt()方法检查输入中是否有任何数据,并且仅当第一个函数返回的值为nextInt()时才调用true