我想创建一个程序,允许我为5个不同的人输入姓名,年龄和出生年份。但是,在我输入for循环中的第一个后,我遇到了无法输入其他名称的问题。这是我的代码:
public static void main(String[] args) {
String[] names = new String[5];
int[] s = new int[5];
Scanner keyboard = new Scanner (System.in);
for (int i = 0; i < 5; i++) {
System.out.print("Name: ");
names[i] = keyboard.nextLine();
System.out.print("Age: ");
s[i] = keyboard.nextInt();
System.out.print("Year: ");
s[i] = keyboard.nextInt();
}
}
程序在我运行时运行正常,但在我输入第一个程序后,它不允许我输入其他4个名字。这是我得到的输出:
答案 0 :(得分:3)
请注意:
String java.util.Scanner.next() - Returns:the next token
String java.util.Scanner.nextLine() - Returns:the line that was skipped
更改您的代码[在初始行时执行]如下所示:
names[i] = keyboard.next();
答案 1 :(得分:2)
看看 - 我修复了你的代码添加“keyboard.nextLine();”最后。
public static void main(String[] args) {
String[] names = new String[5];
int[] s = new int[5];
Scanner keyboard = new Scanner (System.in);
for (int i = 0; i < 5; i++) {
System.out.print("Name: ");
names[i] = keyboard.nextLine();
System.out.print("Age: ");
s[i] = keyboard.nextInt();
System.out.print("Year: ");
s[i] = keyboard.nextInt();
keyboard.nextLine();
}
}
您需要添加它的原因是“nextInt()”只会读取您输入的内容而不是其余内容。该行的剩余部分将由“names [i] = keyboard.nextLine();”读取。自动。
通过在结尾添加另一个“keyboard.nextLine()”,我跳过了该行的左边,然后“names [i] = keyboard.nextLine();”获取一个新行来读取输入。
Java中的每个初学者迟早都会遇到这个问题:)