如何让程序在for循环中等待用户输入?

时间:2014-11-14 17:19:33

标签: java java.util.scanner user-input

我的程序需要获取有关用户输入的汽车数量的信息。我使用for循环使其运行该数量,但是当要求获取信息时,程序将运行整个过程并且不会停止供用户输入。这是我的代码:

public class Main {
public static void main(String[] args) {
    SimpleDateFormat format = new SimpleDateFormat("HH:MM:SS");

    final int distance = 1609;

    Scanner scan = new Scanner(System.in); 

    System.out.println("How many cars entered the gate?");
    int x = scan.nextInt();

    for (int c = 0; c < x; c++) {
        System.out.println("Please input the time the car entered the zone: (HH:MM:SS)");
        String start = scan.nextLine();
        System.out.println("Please input the time the vehicle left the zone: (HH:MM:SS)");
        String stop = scan.nextLine();
    }
}

}

2 个答案:

答案 0 :(得分:3)

您需要添加额外的scan.nextLine()才能使用\n消费的scan.nextInt()字符:

int x = scan.nextInt();
scan.nextLine(); // consume the newline character

答案 1 :(得分:0)

使用“nextInt”函数解决此问题的另一种方法是将“nextLine”输入解析为Int类型

尝试int x = Integer.parseInt(scan.nextLine());而不是int x = scan.nextInt();