有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java扫描器读取输入,但输出以前的输入

考虑下面的片段:

    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) 个答案

  1. # 1 楼答案

    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);