java - 如何添加计算器的当前值方法

标签 java class methods

我正在创建一个内存计算器。在我的代码中,我有一个当前值方法,当运算符决定加、减、乘等时,需要它返回一个新值...我在弄清楚如何更改当前值字段时遇到了麻烦。当我选择向当前值添加一个数字时,该值保持与之前相同的值 0。

头等舱

import java.util.Scanner;

public class MemoryCalculator {
private double currentValue;

    public static int displayMenu() {
        Scanner input = new Scanner(System.in);

        System.out.println("Menu");
        System.out.println("1. Add ");
        System.out.println("2. Subtract ");
        System.out.println("3. Multiply ");
        System.out.println("4. Divide ");
        System.out.println("5. Clear ");
        System.out.println("6. End");
        System.out.println("Please choose which math operation to perform, or press 6 to quit.");

        int selection = input.nextInt();

        return selection;

    }
    public static double getOperand(String prompt) {
        Scanner input = new Scanner(System.in);
        System.out.println(prompt);

        double operand = input.nextDouble();

        return operand;

    }
    public double getCurrentValue() {
        this.currentValue = currentValue;
        return currentValue;

    }
    public void add(double operand2) {
        this.currentValue = getCurrentValue() + operand2;
        getCurrentValue();

    }
    public void subtract(double operand2) {

    }
    public void multiply(double operand2) {

    }
    public void divide(double operand2) {

    }
    public void clear() {

    }


}

二级驾驶员等级

public class MemoryCalculatorDriver {

public static void main(String[] args) {
    double operand2 = 0;

    MemoryCalculator CalcObj = new MemoryCalculator();

    System.out.println(CalcObj.getCurrentValue());
    int selection = CalcObj.displayMenu();

    if(selection == 1) {
        System.out.println(CalcObj.getOperand("What would you like the second number to be"));

        CalcObj.add(operand2);

        System.out.println(CalcObj.getCurrentValue());

    }else if (selection == 2) {
        System.out.println(CalcObj.getOperand("What would you like the second number to be"));

        CalcObj.subtract(operand2);

        System.out.println(CalcObj.getCurrentValue());

    }else if (selection == 3) {
        System.out.println(CalcObj.getOperand("What would you like the second number to be"));

        CalcObj.multiply(operand2);

        System.out.println(CalcObj.getCurrentValue());

    }else if (selection == 4) {
        System.out.println(CalcObj.getOperand("What would you like the second number to be"));

        CalcObj.divide(operand2);

        System.out.println(CalcObj.getCurrentValue());

    }else if (selection == 5) {
        CalcObj.clear();

        System.out.println(CalcObj.getCurrentValue());

    }else if (selection == 6) {
        System.out.println("Goodbye");
    }


}

}

我能够从用户那里获取选择输入,并且我可以从用户那里获取第一个数字。当我选择选项1“添加”时,用户可以输入数字,但是该数字没有添加到当前值。

最佳答案

您通过此方法返回值public static double getOperand(String Prompt)但是您在哪里使用了返回值?

一定是这样的:

if(selection == 1) {
        operand2 = CalcObj.getOperand("What would you like the second number to be"));
        CalcObj.add(operand2);
        System.out.println(CalcObj.getCurrentValue());

        // your code like this...
}

关于java - 如何添加计算器的当前值方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60243078/

相关文章:

Java - 如何在泛型类中调用我的类 T 的方法

javascript - 有没有一种方法可以使用 jQuery 将 HTML 定位到数组中?

javascript - 使用jquery ajax上传文件的数据方法设置

c# - 如何将 typeof class T 转换为 class T 本身以执行 Method<T>,其中 Method 接受 lambda 参数?

c# - 检查委托(delegate)是否是对象的方法,并检索该对象引用和方法名称

java - 如何记录/跟踪java中对象的任何方法调用

java - 映射/数组列表 : which one is faster to search for an element

java - 找到数字字符串的下一个回文的更好算法

java - 我怎样才能增强这个for循环

C++:关于对象的一个​​小问题