Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 而循环不会停止运行_Java_While Loop_Java.util.scanner - Fatal编程技术网

Java 而循环不会停止运行

Java 而循环不会停止运行,java,while-loop,java.util.scanner,Java,While Loop,Java.util.scanner,我有一个while循环,它应该在没有更多整数可读取时结束。出于某种原因,它会继续检查(或者至少我认为是这样),并且不会返回print语句。我的示例输入看起来像 2021223 在hasNextLine()之前,我已经尝试过hasNextLine(),尝试/最终阻止并关闭扫描仪以及阅读论坛 如果我把问题的措辞/格式弄错了,或者如果还有其他资源我还没有找到,我希望得到一些反馈。我真的只是想学 public static void main(String[] args) { x = 0;

我有一个while循环,它应该在没有更多整数可读取时结束。出于某种原因,它会继续检查(或者至少我认为是这样),并且不会返回print语句。我的示例输入看起来像

2021223

hasNextLine()
之前,我已经尝试过
hasNextLine()
,尝试/最终阻止并关闭扫描仪以及阅读论坛

如果我把问题的措辞/格式弄错了,或者如果还有其他资源我还没有找到,我希望得到一些反馈。我真的只是想学

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);
}
在.hasNextInt()中,连续读取数据。所以你应该使用break;在您的要求完成后,在适当的条件下停止此操作。

in.hasNextInt()连续读取数据。所以你应该使用break;在您的要求完成后,在适当的条件下停止此操作。

在这些行之后

    while (in.hasNextInt()) {
        x = in.nextInt();
插入行

        if (x == 0) break;
输入
0
后,循环将停止-当然,您可以选择另一个数字作为停止,即。e<代码>-1

在这些行之后

    while (in.hasNextInt()) {
        x = in.nextInt();
插入行

        if (x == 0) break;

输入
0
后,循环将停止-当然,您可以选择另一个数字作为停止,即。e
-1

我认为有很多方法可以解决这个问题,但我想到的是:

  • 创建第二个扫描仪,并向其传递第一个扫描仪输入
    新扫描仪(in.nextLine())
  • 创建一个while循环,直到没有数字为止<代码>sc.hasnetint()

  • 我认为有很多方法可以解决这个问题,但我想到的是:

  • 创建第二个扫描仪,并向其传递第一个扫描仪输入
    新扫描仪(in.nextLine())
  • 创建一个while循环,直到没有数字为止<代码>sc.hasnetint()

  • 您的输入应该以某种方式终止。1234和12345都是有效输入,因为扫描仪无法自行决定在何处结束。可以假设数字序列在windows上以EOF字符Ctrl-Z终止,在unix上以Ctrl-D终止


    有关此方面的更多帮助,请查看此

    ,您的输入应以某种方式终止。1234和12345都是有效输入,因为扫描仪无法自行决定在何处结束。可以假设数字序列在windows上以EOF字符Ctrl-Z终止,在unix上以Ctrl-D终止


    有关此方面的更多帮助,请查看此

    当您从标准输入读取输入时,输入永远不会结束(扫描仪总是等待输入新输入)。您需要输入一些特殊的输入才能退出循环。添加非整数值会中断循环,例如
    20 21 22 23 A
    。当您从标准输入读取输入时,输入永远不会结束(扫描仪总是等待输入新的输入)。为了退出循环,您需要输入一些特殊的输入。添加非整数值将中断循环,例如代码> 20×21×23 A < /代码>。请考虑接受并支持对您有用的答案。请考虑接受并投票赞成对您有用的答案。