2016-02-17 46 views
-2

我正在做一個練習,在java中創建一個簡單的計算器。 我希望計算器在等號被按下後繼續記數。所以如果我按下「10 + 10 =」,結果將會是20,如果我想按「+1 =」並且結果是21,或者如果我想要減去。 我的代碼如下。我確定必須對代碼的「等於」部分進行更改,但我不確定在哪裏/如何開始。如何在等號被按下後讓計算器接受新的數字? java

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

當輸入爲「2 + 3 * 4」時,預期什麼? –

+0

它應該是20 –

回答

0

你需要更清楚地界定你的問題。 計算器流程應該是什麼。你描述了一個與簡單的a + b相矛盾的操作。

確實很重要,如何輸入數字,例如,如果第一個操作發短信爲「a + b」,「a-b」....則可以將其保存爲currentValue。 比下一個操作將計算currentValue。

0

有一個名爲defaultOperand的變量。當按下等號按鈕時,用操作的輸出更新defaultOperand變量。它成爲默認的左側操作數。如果沒有左側操作數輸入操作,則使用defaultOperand中的值作爲默認的左側操作數。

相關問題