问题描述
它在do-while循环的第三行崩溃,并且不等待我的输入:
It's crashing on the third line inside the do-while loop, and doesn't wait for my input:
input = kb.nextInt();
堆栈跟踪:
在java.util.Scanner.throwFor(未知来源)
at java.util.Scanner.throwFor(Unknown Source)
在java.util.Scanner.next(未知来源)
at java.util.Scanner.next(Unknown Source)
在java.util.Scanner.nextInt(未知来源)
at java.util.Scanner.nextInt(Unknown Source)
在java.util.Scanner.nextInt(未知来源)
at java.util.Scanner.nextInt(Unknown Source)
在main.MainDriver.main(MainDriver.java:50)
at main.MainDriver.main(MainDriver.java:50)
相关代码:
do
{
displayFullMenu();
System.out.print("Selection: ");
input = kb.nextInt();
switch (input)
{
//Create new survey
case 1: currentSurvey = new Survey();
break;
//Display current survey
case 2: currentSurvey.display();
break;
//Save current survey
case 3: saveSurvey(currentSurvey);
break;
//Load a survey
case 4: currentSurvey = loadSurvey();
break;
//Modify a survey
case 5: currentSurvey.modify();
break;
/*******************Test Functions*******************/
//Create new test
case 6: currentSurvey = new Test();
break;
//Display current test
case 7: currentSurvey.display();
break;
//Save current test
case 8: saveSurvey(currentSurvey);
break;
//Load a test
case 9: currentSurvey = loadTest();
break;
//Modify a test
case 10: currentSurvey.modify();
default: System.out.println("Invalid choice. Please make a valid choice: ");
input = kb.nextInt();
System.out.println();
}
} while (input != 99);
kb.close();
选择选项9后,它崩溃.它正确保存了文件,然后返回到循环的顶部,并在前面提到的行崩溃.我要它请求更多输入.
It crashes after I choose option 9. It saves the file correctly, then goes back to the top of the loop, and crashes at the previously mentioned line. I want it to ask for more input.
有什么作用?
推荐答案
是的,这可能是问题所在.如果Scanner
与kb
具有相同的源(System.in
?)并且是close()
d,则将关闭基础流,并且kb
无法再获取输入.
Yes, that could be the issue. If that Scanner
has the same source (System.in
?) as kb
and is close()
d, that closes the underlying stream, and kb
cannot get input anymore.
这篇关于我无法弄清的扫描仪错误:NoSuchElementException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!