java - 为什么这个 while 循环不结束?

标签 java while-loop

import java.io.*;
import java.util.Scanner;

public class Solve {
    public static void main(String[] args) {
        int max = 10;
        int i = 0;
        long record = 100000;
        while (i != 100) {
            int x = (int) (Math.random() * max) + 1;
            int y = (int) (Math.random() * max) + 1;
            int solution = x + y;
            long startTime = System.currentTimeMillis();

            while (i != solution) {
                System.out.println("Enter the solution to " + x + "+" + y);
                Scanner sc = new Scanner(System.in);
                i = sc.nextInt();
                if (i != solution) {
                    System.out.println("Incorrect");

                } else {
                    System.out.println("Correct!");
                }
                long endTime = System.currentTimeMillis();
                System.out.println("You took: " + (endTime - startTime) + "ms");

                if (endTime - startTime < record) {
                    record = endTime - startTime;
                    System.out.println("New record time: " + record + "ms");
                }
            }
        }
    }
}

这个程序创建一个简单的加法问题并要求用户输入答案。它还跟踪正确回答问题所需的时间。我试图让用户通过为 i 输入 100 来结束第一个 while 循环,但是有没有更好的方法来结束这个循环?

最佳答案

永远不会跳出内部while 循环。您的执行路径将卡在那里。一个快速的解决方法是调整你对内部循环的循环约束:

while (i != solution && i != 100)

关于java - 为什么这个 while 循环不结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17309893/

相关文章:

c++ - 为什么我的 'while' 语句之一在我的另一个 'while' 语句为真时执行?

java - 如何将节点添加到倒数第二个位置?

PHP While 循环不返回一行数据

testing - 如何检查线程组在jmeter中停止执行

php - PHP while 循环中没有条件?

c++ - 如何解决 while 循环中数组重载的问题

java - RxJava - 获取 2 个组合请求的结果数据列表

java - 在 MongoDB 中高效处理用图像保存对象数据

java - Spring 类忽略工作 log4j 配置

java - textView 中的 Android HTML,图像大小