因此,这个问题有点简单,但是我想知道为什么下面的代码在第一次运行完美之后,直接跳转到“输入页码:”,而不是在第二个循环中询问标题。我在某处读到Java的某些功能不允许重复使用Scanner。这是我面临的问题吗?我试过使用kbReader.next(),并且可以,但是代码仅适用于不带空格的字符串。

String title = "";
int page = 0;
int i = 0;
Scanner kbReader = new Scanner(System.in);

for (i=1;i<=3;i++){
        System.out.print("Enter the title: ");
        title = kbReader.nextLine();
        System.out.print("Enter the page number: ");
        page = kbReader.nextInt();

        System.out.print(title);
        System.out.println(page);
    }

非常感谢帮助!

最佳答案

您应该在kbReader.nextLine();之后添加kbReader.nextInt();。在第二个循环中,kbReader.nextInt();只是读取流中的行尾,kbReader.nextInt();忽略了该行。

10-06 12:41