Java中的简单计算器

时间:2019-03-14 05:14:19

标签: java calculator

我正在尝试使用用户输入的第一个数字和第二个数字在Java中创建简单的计算器,然后使用while循环以用户喜欢的方式进行计算 但是当我写例如 a 而不是两个数字求和时,它就中断了循环! 为什么?

package com.myproject.CalcEngine2;
import java.util.Scanner; // import the Scanner class

public class Main {

    public static void main(String[] args) {
        Scanner myObj = new Scanner(System.in);
        System.out.println("Enter fisr number");
        double val1 = myObj.nextDouble();
        System.out.println("Enter fisr number");
        double val2 = myObj.nextDouble();
        double result = 0.0d;
        String addition = "a";
        System.out.println("Enter what you want to do");
        String opCode = myObj.next();
        while(opCode.equals("E")) {
            if (opCode.equals(addition))
                result = val1 + val2;
            else if (opCode.equals("s"))
                result = val1 - val2;
            else if (opCode.equals("d"))
                result = val1 / val2;
            else if (opCode.equals("m"))
                result = val1 * val2;
            System.out.println(result);
            System.out.println("Enter what you want to do"+"E for exit , a for addition , s for subtraction , d for Division , m for multiplication ");
            opCode = myObj.next();
        }
    }
}

程序显示我写的每个字符都是错误的,但是我不明白为什么!?

5 个答案:

答案 0 :(得分:3)

也许是因为while循环将终止,但“ E”除外?

while(opCode.equals("E")) {

仅在它为“ E”时运行,但我想你的意思是

while(!opCode.equals("E")) {

答案 1 :(得分:0)

请输入

while(!opCode.equals("E"))

希望这对您有帮助!

谢谢。

答案 2 :(得分:0)

您输入的条件,

while(opCode.equals("E")){

}

在这种情况下不正确。在输入E之前,不会在while循环内的块上执行它。 所以,那么您的其他条件都不满足

添加

 while(!opCode.equals("E")){

}

该代码将为您提供帮助。 谢谢!

答案 3 :(得分:0)

请检查while循环中的条件,如果输入的输入不是'E',则终止。

要使其正常工作,请进行以下更改:

while(!opCode.equals("E")) {
// Operation code
}

顺便说一句,要更清楚地了解操作,您可以打印如下:

System.out.println("Enter what you want to do, 'a': for addition, 's': for subtraction, 'd': for division, 'm': for multiplication ");

答案 4 :(得分:0)

感谢所有 这是您最终的代码,他们将在以后删除大小写敏感的情况下进行搜索!

package com.myprogram.CalcEngine;
import java.util.Scanner; // import the Scanner class

public class Main {

    public static void main(String[] args) {
        Scanner myObj = new Scanner(System.in);
        System.out.println("Enter fisr number");
        double val1 = myObj.nextDouble();
        System.out.println("Enter fisr number");
        double val2 = myObj.nextDouble();
        double result = 0.0d;
        String addition = "a";
        System.out.println("Enter what you want to do");
        String opCode = myObj.next().toLowerCase();
        while(!opCode.equals("e")) {
            if (opCode.equals(addition)){
                result = val1 + val2;
                System.out.println(result);}
            else if (opCode.equals("s")){
                result = val1 - val2;
                System.out.println(result);}
            else if (opCode.equals("d")){
                result = val1 / val2;
                System.out.println(result);}
            else if (opCode.equals("m")){
                result = val1 * val2;
                System.out.println(result);}
            else
                System.out.println("Error please enter true character: ");
            System.out.println("Enter what you want to do"+"E for exit , a for addition , s for subtraction , d for Division , m for multiplication ");
            opCode = myObj.next();
        }
        System.out.println("Good bye! See you :) ");
    }
}

有变化

String opCode = myObj.next();

String opCode = myObj.next().toLowerCase();
第15行中的

改变

opCode = myObj.next();

opCode = myObj.next().toLowerCase();

第32行

所有输入均为小写。 一切顺利。