简单的Java Scanner代码无法正常工作

Mik*_*ike 3 java loops java.util.scanner

这是我写的一些基本代码的骨架,用于制作一个简单的游戏:

    Scanner in = new Scanner(System.in);

    String name;
    String playing;
    int age;

    do {

        System.out.println("Enter your name");
        name = in.nextLine();

        System.out.println("Enter your age");
        age = in.nextInt();

        System.out.println("Play again?");
        playing = in.nextLine();

    } while (true);
Run Code Online (Sandbox Code Playgroud)

代码无法按预期工作,例如,以下是代码的预期功能:

Enter your name
John
Enter your age
20
Play again?
Yes
Enter your name
Bill
...
Run Code Online (Sandbox Code Playgroud)

但是,再次阅读Play有一个问题,这是实际输出:

Enter your name
John
Enter your age
20
Play again?
Enter your name
Run Code Online (Sandbox Code Playgroud)

如您所见,"再次播放?"之前会再次显示"输入您的姓名".能够接受输入.当调试播放变量设置为""时,没有我可以看到的输入,我无法弄清楚正在消耗什么.任何帮助将不胜感激,谢谢!

Mat*_*Mat 5

nextInt()不消耗行尾,即使那int是唯一的东西.

nextLine()在阅读之后添加另一个int,并完全丢弃其值,或者如果要阻止人们输入除int之外的任何内容,请检查它是否为空.