虽然循环不适用于两个输入

时间:2016-02-06 02:13:26

标签: java input while-loop

我正在一个更大的程序中工作,我有一个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:

它跳过第一个输入后的每个循环中的第一个输入。 为什么呢?

1 个答案:

答案 0 :(得分:0)

您需要致电

Scan.nextLine();
行后

int age = Scan.nextInt();

这会消耗缓冲区中的行尾字符。

另一种方法是使用scan.nextLine()并将输入解析为这样的整数:

int age = Integer.parseInt(Scan.nextLine());