Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/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 变量作为命令_Java_Variables_Calculator_Arithmetic Expressions - Fatal编程技术网

Java 变量作为命令

Java 变量作为命令,java,variables,calculator,arithmetic-expressions,Java,Variables,Calculator,Arithmetic Expressions,我希望能够使用一组变量来代替数学运算符。我试图创建一个计算器作为学习练习。我认为每次按下按钮时都进行计算是不好的,因此如何在不将计算包含在if语句中的情况下更改问题中的运算符 例子 第一个问题。为什么按下按钮时计算会不好呢?简单得多 如果确实需要,可以使用命令模式并存储用户单击equals时要执行的命令列表 例如 然后,每次按下按钮时,您都会创建一个新操作并将其存储在列表中。当按下equals时,执行每个操作,将结果从一个传递到下一个 显然,你还需要更多的手术。如果你要求别人为你做手术(并且先读

我希望能够使用一组变量来代替数学运算符。我试图创建一个计算器作为学习练习。我认为每次按下按钮时都进行计算是不好的,因此如何在不将计算包含在if语句中的情况下更改问题中的运算符

例子
第一个问题。为什么按下按钮时计算会不好呢?简单得多

如果确实需要,可以使用命令模式并存储用户单击equals时要执行的命令列表

例如

然后,每次按下按钮时,您都会创建一个新操作并将其存储在列表中。当按下equals时,执行每个操作,将结果从一个传递到下一个


显然,你还需要更多的手术。

如果你要求别人为你做手术(并且先读你的想法,了解你想要什么),这不是一个学习练习。我不确定你在问什么。您所说的“更改问题中的运算符”是什么意思。问题是什么?读这个:这个:你的答案在你的标题中:命令模式!我将使用
ScriptEngine
来评估公式的结果,从而避开所有这些步骤。
string plus = +;
string equals = =;
public void button_clicked(....)
{
    .....
    7 equals 4 plus 3;
public interface Operation {

    public double execute();

}

public class Add implements Operation {

    private double num1;
    private double num2;

    public Add(double num1, double num2) {
        this.num1 = num1;
        this.num2 = num2;
    }

    public double execute() {
        return num1 + num2;
    }

}