//...
for (int i = 0; i < numbers; i++)
{
System.out.print("请输入第" + (i + 1) + "个学生的ID:");
int id = in.nextInt();
System.out.print("请输入第" + (i + 1) + "个学生的姓名:");
String name = in.nextLine();
System.out.print("请输入第" + (i + 1) + "个学生的年龄:");
int age = in.nextInt();
}
//...为什么只能输入ID,而中间的姓名却跳过了呢?求高手解答,感激不尽!
for (int i = 0; i < numbers; i++)
{
System.out.print("请输入第" + (i + 1) + "个学生的ID:");
int id = in.next(); // 不要用nextline()
System.out.print("请输入第" + (i + 1) + "个学生的姓名:");
String name = in.nextLine();
System.out.print("请输入第" + (i + 1) + "个学生的年龄:");
int age = in.nextInt();
}
for (int i = 0; i < numbers; i++)
{
System.out.print("请输入第" + (i + 1) + "个学生的ID:");
int id = in.nextInt();
System.out.print("请输入第" + (i + 1) + "个学生的姓名:");
String name = in.next();// 不要用nextline()
System.out.print("请输入第" + (i + 1) + "个学生的年龄:");
int age = in.nextInt();
}
刚才改错地方了!。。
public String nextLine()此扫描器执行当前行,并返回跳过的输入信息。 此方法返回当前行的其余部分,不包括结尾处的行分隔符。当前位置移至下一行的行首。
因为此方法会继续在输入信息中查找行分隔符,所以如果没有行分隔符,它可能会缓冲所有输入信息,并查找要跳过的行。看一下它们的区别你就明白了
因为此方法会继续在输入信息中查找行分隔符,所以如果没有行分隔符,它可能会缓冲所有输入信息,并查找要跳过的行。