Как добавить в метод Current Value для калькулятора - PullRequest
0 голосов
/ 15 февраля 2020

Я создаю калькулятор памяти. В моем коде у меня есть метод текущего значения, и мне нужно, чтобы он возвращал новое значение, когда оператор либо решает сложить, вычесть, умножить и т. Д. c ... У меня проблемы с выяснением того, как изменить текущее значение поле. Когда я решил добавить число к текущему значению, значение остается таким же, как и прежде, 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 «Добавить», пользователь может ввести число, но число не было добавлено к текущему значению.

1 Ответ

1 голос
/ 16 февраля 2020

Вы возвращаете значение этим методом 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...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...