有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何让计算器在按下等号后接受新数字?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) 个答案

  1. # 1 楼答案

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

    如果第一个操作是文本“a+b”、“a-b”…,那么如何输入数字就很重要了。。。。然后可以将其保留为currentValue。 然后,将根据currentValue计算下一次运算

  2. # 2 楼答案

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