我是编程的新手,我的扫描仪类有问题。这个代码处于一个循环中,当循环绕过第二个,第三个时,无论我将它设置为什么,它都会跳过第一个标题输入。 我需要帮助,为什么它在开始时跳过我的标题扫描仪输入?
System.out.println("Title:");
list[i].title=keyboard.nextLine();
System.out.println("Author:");
list[i].author=keyboard.nextLine();
System.out.println("Album:");
list[i].album=keyboard.nextLine();
System.out.println("Filename:");
list[i].filename=keyboard.nextLine();
答案 0 :(得分:1)
在您未向我们展示的代码中,可能存在对Scanner
输入方法之一的调用,该方法不使用换行方法。例如nextLine
。在这种情况下,换行符将从循环结束传递到后续nextLine
语句。现在这不会阻止收到输入。解决方案是确保在每次迭代结束时消耗换行符
// list[i].id = keyboard.nextInt();
list[i].id = Integer.parseInt(keyboard.nextLine());