我正在一个更大的程序中工作,我有一个while循环,询问两个问题并得到两个输入。每当while循环的第二个循环发生时,它会显示两个输出,而不是在第一个输出之后输入,然后输入第二个输入。
这是一个展示我问题的小例子:
public class Tests{
public static void main(String args[]){
Scanner Scan = new Scanner(System.in);
while (true){
System.out.println("Please enter your name: ");
String name = Scan.nextLine();
System.out.println("Please enter your age: ");
int age = Scan.nextInt();
System.out.println(name + age);
}
}
}
第一个循环工作正常。然后第二次通过,输出
Please enter your name:
Please enter your age:
它跳过第一个输入后的每个循环中的第一个输入。 为什么呢?
答案 0 :(得分:0)
您需要致电
Scan.nextLine();
行后
int age = Scan.nextInt();
这会消耗缓冲区中的行尾字符。
另一种方法是使用scan.nextLine()
并将输入解析为这样的整数:
int age = Integer.parseInt(Scan.nextLine());