2011-03-22 58 views
0

可能重複:
Making a simple calculator cannot exit loop or give answer簡單的計算器問題,回答不讀書

喜,所以基本上我此刻的代碼利用最後一個值並執行計算使用相同 so 5 + 6 = 12 如何存儲操作數然後在計算中使用它們

public double getResult(){ 

     if (getOperator() == '+') 
      { 

      result = (getOperand() + getOperand()); 

      } 

      if (getOperator() == '-') 

      { 

      result = (getOperand() - getOperand()); 

      } 

      if (getOperator() == '*') 

      { 

      result = (getOperand() * getOperand()); 

      } 

      if (getOperator() == '/') 

      { 

      result = (getOperand()/getOperand()); 

      } 


      return result; 

    } 


public boolean getanswer(String value) 

{ 

boolean isnum = false; 

try { 

     setOperand(Double.parseDouble(value)); 

     operand = (Double.parseDouble(value)); 

     getResult(); 

     isnum = true; 



    } 

catch(Exception e) 

{ 

     try { 

      setOperator(value.charAt(0)); 

      operator = (value.charAt(0)); 

      isnum = false; 

     } 

     catch(Exception e2) 

     { 

     System.out.println("Enter a number"); 

     } 
+0

複製(http://stackoverflow.com/questions/5396840/) – Howard 2011-03-22 20:26:10

+2

笑@重複作業 – 2011-03-22 20:27:35

+1

發佈由同一個用戶,實際上 – Justin 2011-03-22 20:28:45

回答

0

你可以調整你的程序如下得到你想要的東西:

  1. 讀取第一個操作數並保存到變量操作數
  2. 讀取操作員,並保存成可變運營商
  3. 讀第二個操作數,並保存到變量操作數
  4. 進行計算結果=操作數運算符操作數

如果你想循環ŧ他可以添加另一個步驟:5.用結果替換操作數1並轉到2.

在您的設計中嘗試在單個計算器類中執行此操作。由於你沒有「main」循環,你不得不保存你當前的狀態(即類似算法的步驟號)。這將導致類似:

  • 如果我在狀態1和一個操作數是在未來:保存變量操作數和更新狀態變量爲2
  • 如果我在狀態2和運營商在未來的:在變量操作和更新狀態變量保存到3

...