我有一个while循环,当没有更多的整数被读取时,它应该结束。由于某种原因,它继续检查(或至少我相信)并且不会返回打印声明。我的示例输入看起来像,
20 21 22 23
我在hasNextLine()
之前尝试hasNextInt()
,尝试/最后阻止并关闭扫描程序以及阅读论坛。
如果我对错误的问题进行了措辞/格式化,或者我还没有找到另一种资源,我会很感激一些反馈意见。我真的只是想学习。
public static void main(String[] args) {
x = 0;
in = new Scanner(System.in);
while (in.hasNextInt()) {
x = in.nextInt();
reverse(x);
beautiful(x, reverse(x), y);
}
printCount(count);
}
答案 0 :(得分:0)
in.hasNextInt()连续读取数据。所以你应该使用休息;在您的要求完成后,以适当的条件停止此操作。
答案 1 :(得分:0)
在这些行之后
while (in.hasNextInt()) {
x = in.nextInt();
插入行
if (x == 0) break;
并且在输入0
后循环将停止 - 当然,您可以选择另一个号码来停止,i。即-1
。
答案 2 :(得分:0)
我认为有很多方法可以解决这个问题,但我想到了这个:
new Scanner(in.nextLine());
sc.hasNextInt()
答案 3 :(得分:0)
您的输入应以某种方式终止。 1 2 3 4和1 2 3 4 5都是有效输入,因为扫描仪无法自行决定在何处结束。可以假设数字序列由Windows上的EOF字符Ctrl-Z和unix上的Ctrl-D终止。
有关此问题的更多帮助,请查看此link