简单的计算器问题,而不是阅读答案

时间:2011-03-22 20:23:10

标签: java

  

可能重复:
  Making a simple calculator cannot exit loop or give answer

嗨,所以基本上我的代码目前取最后一个值并用相同的数字进行计算 所以 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");

        }

1 个答案:

答案 0 :(得分:0)

您可以按照以下步骤重构您的计划,以获得您想要的内容:

  1. 读取第一个操作数并保存到变量operand1
  2. 读取运算符并保​​存到变量运算符
  3. 读取第二个操作数并保存到变量操作数
  4. 执行计算结果= operand1 operator operand2
  5. 如果你想循环这个,你可以添加另一个步骤:5。用结果替换operand1并转到2。

    在您的设计中尝试在单个计算器类中执行此操作。由于你没有“主”循环,你必须以某种方式保存你当前所处的状态(即类似算法的步数)。这将导致类似:

    • 如果我处于状态1且操作数进入:保存在变量operand1中并将状态变量更新为2.
    • 如果我处于状态2且操作员进来:保存在变量操作符中并将状态变量更新为3.

    ...