在下面的代码中,如果我输入:
1 2
3 4
预期输出:
1
2
3
4
但是实际输出是:
1
2
3
有人可以向我解释为什么扫描仪跳过最后一个元素吗?
public static void main(final String[] parameters) {
Scanner input = new Scanner(System.in);
while (input.hasNextInt()) {
System.out.println(input.nextInt());
}
}
因为您的第四个元素,即last没有下一个int,它将在到达false
时返回4
。
尝试一下:
public static void main(final String[] parameters) {
Scanner input = new Scanner(System.in);
while (true) {
System.out.println(input.nextInt());
if (!input.hasNextInt()) break;
}
}