首页 > 解决方案 > 当条件为假时Java do while循环不会停止

问题描述

即使 while 中的布尔值为 false,循环仍会继续。我不确定出了什么问题。如果他们的回答没有缓存,则布尔循环变量应该设置为 false 将您从循环中释放,但由于某种原因,程序没有这样做。

    public static double getvalue(String unit) {
        double answer = 0;
        boolean loop = true;
        do {
            try {
                System.out.println("enter the " + unit);
                answer = sc.nextDouble();
                loop = false;
            } catch (Exception e) {
                System.out.println("has to be a double");
                sc.nextLine();
            }
        } while (loop);
        return answer;
    }

*编辑:在第 11 次查看我的代码并完成更多代码之后,事实证明问题出在顶部的另一个循环中,我没有正确解决它,使其不断地一遍又一遍地调用这个循环。我修复了它,现在它可以工作了。非常感谢你,对此感到抱歉

标签: javaloopsdo-while

解决方案


这就是我要做的——

public static double getValue(String unit) {
    Scanner keys = new Scanner(System.in);
    double answer = 0;

    System.out.println("Enter a double: ");
    while (true) {
        try {
            answer = keys.nextDouble();
            return answer;
        } catch (Exception exc) {
            System.out.println("number has to be a double!");
            keys.nextLine();
        }
    }
  }

推荐阅读