如何让计算器在按下等号后接受新数字?JAVA
我正在做一个用java创建一个简单计算器的练习。 我想让计算器在按下等号后继续计算数字。因此,如果我按下“10+10=”键,结果将是20,如果我想按下“+1=”键,结果将是21。或者如果我也想减法。 我的代码如下。我确信必须对代码的“相等”部分进行更改,但我不确定从何处/如何开始
public int getDisplayValue()
{
return displayValue;
}
public void numberPressed(int number)
{
currentValue = (currentValue * 10) + number;
displayValue = currentValue;
}
private void applyPreviousOperation()
{
if (previousOp == '+')
{
heldValue = heldValue + currentValue;
displayValue = heldValue;
}
else if (previousOp == '-')
{
heldValue = heldValue - currentValue;
displayValue = heldValue;
}
else {
heldValue = currentValue;
}
}
public void plus()
{
applyPreviousOperation();
previousOp = '+';
currentValue = 0;
}
public void minus()
{
applyPreviousOperation();
previousOp = '-';
currentValue = 0;
}
public void equals()
{
applyPreviousOperation();
previousOp = ' ';
currentValue = 0;
heldValue = 0;
}
public void clear()
{
displayValue = 0;
previousOp = ' ';
}
}
# 1 楼答案
你需要更清楚地定义你的问题。 计算器的流程应该是什么。您描述的操作与简单的a+b相矛盾
如果第一个操作是文本“a+b”、“a-b”…,那么如何输入数字就很重要了。。。。然后可以将其保留为currentValue。 然后,将根据currentValue计算下一次运算
# 2 楼答案
有一个名为DefaultOperator的变量。按下equals按钮时,使用操作的输出更新DefaultOperator变量。它将成为默认的左侧操作数。如果输入的操作没有左侧操作数,则使用DefaultOperator中的值作为默认左侧操作数