按下等号后如何让计算器接受新数字? java的

时间:2016-02-17 15:59:09

标签: 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 = ' ';

}

}

2 个答案:

答案 0 :(得分:0)

您需要更清楚地定义问题。 什么是计算器流程应该是什么。您描述的操作与简单的a + b相矛盾。

输入数字真的很重要,例如,第一个操作是发送短信“a + b”,“a-b”....比你可以保持为currentValue。 将根据currentValue计算下一次操作。

答案 1 :(得分:0)

有一个名为defaultOperand的变量。按下等于按钮时,使用操作的输出更新defaultOperand变量。它成为默认的左侧操作数。如果输入的操作没有左侧操作数,则使用defaultOperand中的值作为默认左手操作数。