Java:扫描仪不将最后一个元素作为输入

问题描述 投票:0回答:1

在下面的代码中,如果我输入:

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());
    }
}
java java.util.scanner
1个回答
0
投票

因为您的第四个元素,即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;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.