我正在练习在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 = ' ';
}
}
答案 0 :(得分:0)
您需要更清楚地定义问题。 什么是计算器流程应该是什么。您描述的操作与简单的a + b相矛盾。
输入数字真的很重要,例如,第一个操作是发送短信“a + b”,“a-b”....比你可以保持为currentValue。 将根据currentValue计算下一次操作。
答案 1 :(得分:0)
有一个名为defaultOperand的变量。按下等于按钮时,使用操作的输出更新defaultOperand变量。它成为默认的左侧操作数。如果输入的操作没有左侧操作数,则使用defaultOperand中的值作为默认左手操作数。