java - 如何从 Java 循环中删除 while(true)?

标签 java infinite-loop

我听说使用 while(true) 是一种糟糕的编程习惯。

因此,我编写了以下代码来从用户那里获取一些数字(使用默认值)。但是,如果用户碰巧输入 -1,那么它将为他们退出程序。

这应该怎么写呢(真的)?我能想到一个条件来使 while 循环结束,它会立即被捕获而不会继续直到下一次迭代?

这是我现在的样子:

 public static void main(String[] args)
    {
        System.out.println("QuickSelect!");

        while (true)
        {
            System.out.println("Enter \"-1\" to quit.");

            int arraySize = 10;
            System.out.print("Enter the size of the array (10): ");
            String line = input.nextLine();
            if (line.matches("\\d+"))
            {
                arraySize = Integer.valueOf(line);
            }

            if (arraySize == -1) break;

            int k = 1;
            System.out.print("Enter the kth smallest element you desire (1): ");
            line = input.nextLine();
            if (line.matches("\\d+"))
            {
                k = Integer.valueOf(k);
            }

            if (k == -1) break;

            List<Integer> randomData = generateRandomData(arraySize, 1, 100);

            quickSelect(randomData, k);
        }
    }

最佳答案

while (true) 没问题。保留它。

如果你有一个更自然的终止条件,我会说使用它,但在这种情况下,正如其他答案所证明的那样,摆脱 while (true) 会使代码更难明白了。

关于java - 如何从 Java 循环中删除 while(true)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1514951/

相关文章:

java - 在不同的类中使用在一个类中创建的类型参数

java - 如何在 infinispan 计算网格中指定节点

java - Java 中的 while 循环不会对文档的最后一行执行操作

c# - 为什么我的 LostFocus 事件出现无限循环

java - 延迟异常

python - 我正在尝试从 Django 内运行一个无尽的工作线程(守护进程)

c - C中的猜数程序中的无限循环

debugging - 为什么prolog进入无限循环?

big-o - 无限循环计算时间T(n)和Big-O

java - 使用 Java 连接到远程共享文件夹时出现 SMB API 问题