如何在java中停止while循环?

时间:2017-07-23 10:05:03

标签: 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) {
            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中已存在此问题,但我无法找到答案。

1 个答案:

答案 0 :(得分:1)

不要在Java中将字符串与==进行比较,例如使用“N”.equals(ans)。请留意@EJP为您发布的副本