【发布时间】:2019-04-19 18:33:45
【问题描述】:
所以我正在尝试编写一个简单的菜单,其中一些选项会打印到屏幕上,然后我会询问用户他们想要哪个选项。无论他们键入什么,都应该保存并将它们发送到菜单选项之一。相反,它在第 20 行 (String userInput = user.next();) 给了我一个“NoSuchElementException”。我没有任何 .nextInt() 请帮忙。
我已经尝试过一段时间(user.hasNext()) {} 和 if(user.hasNext()){} 并将它们一起尝试。我要么得到异常,要么陷入无限循环。
public static void menu(Pet myPet) {
System.out.println();
System.out.print("Welcome, " + myPet.getName());
while(true) {
Scanner user = new Scanner(System.in);
System.out.println(". What would you like to do?");
System.out.println("Games Feed Walk Status");
**Error** String userInput = user.next();
if (userInput.equals("Games")) {
它应该只是等待输入。我已经尝试设置 userInput 并且它似乎可以工作,但是在我的游戏菜单中我有一个类似的设置并且它也在那里中断。
【问题讨论】:
-
您是否正在关闭
System.in其他任何地方?你能提供一个minimal reproducible example 让我们自己尝试重现这个吗? -
另外,不要在循环中创建扫描器,因为它很可能会破坏所有未来从标准输入读取的扫描器(它会缓冲用户输入,使其无法被其他扫描器访问)。在循环之外定义扫描仪来解决这个问题。
标签: java java.util.scanner nosuchelementexception