扫描仪读取输入但输出先前的输入

时间:2014-03-21 18:33:22

标签: java java.util.scanner

请考虑以下代码段:

    System.out.print("input iteration cycles");
    Scanner reader=new Scanner(System.in);
    int iteration = reader.nextInt();
    System.out.print("input choice: Var or par");
    String choice=reader.nextLine();
    System.out.print(choice);

我希望得到一行打印第一个输入而下一个打印输出只打印下一个输入,即var或par,但是看起来第二个打印输出的第二个输入除了第一次输入。知道为什么吗?

1 个答案:

答案 0 :(得分:2)

nextInt()没有进入下一行。因此,您必须立即对nextLine()进行明确调用。否则,choice将被赋予该换行符。只需将此行添加到您的代码中:

System.out.print("input iteration cycles");
Scanner reader=new Scanner(System.in);
int iteration = reader.nextInt();
reader.nextLine(); //<==ADD
System.out.print("input choice: Var or par");
String choice=reader.nextLine();
System.out.print(choice);