while循环使用hasNextInt()完成,但程序后面没有做任何事情

时间:2011-11-11 23:58:51

标签: java java.util.scanner

所以我在这里有这个程序:

ArrayList<Integer> meh = new ArrayList<Integer>();
Scanner sc = new Scanner(System.in);
System.out.print("Input 3 numbers: ");

while (sc.hasNextInt()) {
    meh.add(sc.nextInt());
    System.out.println("meeeeeep");
}

System.out.println("Goodbye");

输出(如果输入3个整数):

meeeeeep
meeeeeep
meeeeeep

它不会打印再见消息,也不会执行我之后的任何操作。

1 个答案:

答案 0 :(得分:4)

那是因为扫描仪正在等待即将到来的输入。 sc.hasNextInt()正在等待下一个标记,并确定它是否为int。

要解决此问题,请尝试逐行阅读并使用" "

分割到String.split();

另一个解决方案可能是在for循环中执行此操作:

for (int i = 0; i < 3; ++i) {
    meh.add(sc.nextInt());
    System.out.println("meeeeeep");
}