我有一个名为 的类PlayGame
,在main
方法中我有这段代码:
public class PlayGame {
public static void main(String args[]) {
while (true) {
System.out.println("Where would you like your adventure to begin? (Enter a number)\n");
System.out.println("1. Play the Game\n2. Quit the Game");
Scanner userInput = new Scanner(System.in);
String userAction;
try {
userAction = userInput.nextLine().trim();
if (userAction.equals("1")) {
pressPlay();
} else if (userAction.equals("2")) {
System.exit(0);
} else {
System.out.println("Sorry, your selection wasn't valid.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
这一切都很好,当用户键入1时,pressPlay()
会调用它并继续执行下一个方法,该方法会做一些事情,主要是将事情打印到屏幕上。但是,当我离开该pressPlay()
方法并返回此主方法时,我开始收到读取输入的错误:
java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1516)
at PlayGame.main(PlayGame.java:17)
你能告诉我如何解决这个问题吗?非常感激!
编辑- 我只是希望它返回到 main 方法中的 while 循环并再次请求 1 或 2,并取一个有效的 1 或 2。我的代码一直运行到userAction = userInput.nextLine().trim();
第二次不再等待用户输入,离开该pressPlay()
方法后。
编辑- 该pressPlay()
方法生成一个网格,玩家可以通过键入特定命令在其中移动。它内部有一个while (true) {
循环,并Scanner userInput = new Scanner(System.in);
接受玩家的输入。如果玩家键入 quit,它会调用 while 循环的中断并返回到 main 方法,然后出现问题。