Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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中停止while循环?_Java_Loops_If Statement_While Loop_Calculator - Fatal编程技术网

如何在java中停止while循环?

如何在java中停止while循环?,java,loops,if-statement,while-loop,calculator,Java,Loops,If Statement,While Loop,Calculator,我是Java新手,我正在创建一个简单的计算器。我使用while循环连续运行它,但我无法停止它,请帮助我编写代码 我的计算器类代码是: package calculator; import java.util.Scanner; public class Calculator { public static void main(String[] args) { Boolean keepRunning = true; while (keepRunning)

我是Java新手,我正在创建一个简单的计算器。我使用while循环连续运行它,但我无法停止它,请帮助我编写代码

我的计算器类代码是:

package calculator;

import java.util.Scanner;

public class Calculator {

    public static void main(String[] args) {
        Boolean keepRunning = true;
        while (keepRunning) {
            double a, b, out;
            int n;
            String ans = null;
            Scanner in = new Scanner(System.in);
            System.out.println("Enter two Numbers ");
            a = in.nextDouble();
            b = in.nextDouble();

            System.out.println("Enter the mode of operation:" + "\n"
                    + "1. Addition" + "\n"
                    + "2. Subtraction" + "\n"
                    + "3. Multiplication" + "\n"
                    + "4. Division");
            n = in.nextInt();
            switch(n){
                case 1:
                    out = add(a,b);
                    System.out.println("The output is: "+ out );
                    break;
                case 2:
                    out = sub(a,b);
                    System.out.println("The output is: "+ out );
                    break;
                case 3:
                    out = mul(a,b);
                    System.out.println("The output is: "+ out );
                    break;
                case 4:
                    out = div(a,b);
                    System.out.println("The output is: "+ out );
                    break;
                default:
                    System.out.println("Enter Valid option");
                    break;                
            }
            System.out.println("Do you want to continue? (Y/N)");
            Scanner in1 = new Scanner(System.in);
            ans = in1.next();

            if(ans == "Y" || ans == "y"){

            }else if(ans == "N" || ans == "n"){
                keepRunning = false;    
                System.exit(0);
            }        
        }      
    }

    public static double add(double a, double b){
        return a+b;
    }
    public static double sub(double a, double b){
        return a-b;
    }
    public static double mul(double a, double b){
        return a*b;
    }
    public static double div(double a, double b){
        return a/b;
    }
}
if循环根本没有运行,这其中有什么问题


注意:这个问题在Stackoverflow中已经存在,但我找不到答案。

不要将字符串与Java中的
==
进行比较,例如使用“N”.equals(ans)。注意为您复制的@EJP帖子