在Java中,在while循环中将扫描器放置在输出之后会遇到一些问题。扫描程序将扫描要使用的方法,然后在返回循环开始时进行扫描重置变量。
我已经尝试过了,但是没有找到任何可以理解的解决方案(对Java来说真的很新,这对我来说很难),还是解决我自己的问题这是代码:
public class Main {
public static void main(String[] args) {
int con=1;
System.out.println("Hey!,welcome to my games!");
String game;
while(con==1)
{
Scanner scanner=new Scanner(System.in);
System.out.println("Here Some games i have(Enter the text for the one you want):\nto stop=0\n1)game 1=1");
game=scanner.next();
calculator();
scanner.reset();
System.out.println(game);
// if(game.equals("0")) {
// con=0;
// }
// else if(game.equals("1")) {
// System.out.println("Welcome Back!");
// }
// else {
// System.out.println("There is a mistake in your text");
// }
scanner.close();
}
}
如您所见,我试图自己解决它,甚至对某些代码发表评论,但是当它运行到方法并返回时,它失败了,因为扫描仪认为存在我写东西之前要扫描的东西。这是例外-
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1478)
at Main.main(Main.java:12)
您还记得导入java.util.Scanner吗?或如何编译源文件?使用gradle进行编译时,我也遇到了相同的错误消息,并且gradle构建文件中缺少一条细线。