【问题标题】:Computing multiple numbers with multiple operations通过多个操作计算多个数字
【发布时间】:2014-03-12 18:52:34
【问题描述】:

所以我正在创建一个可以计算数字的计算器。我有这个代码(我不会包含非常基本的代码)

long num1, num2, answer;
boolean mySwitch = false;
boolean do_subtraction_flag = false;  // when true we will apply subtraction
boolean multiply = false;
boolean divide = false;

void loop()
{
char keypressed = myKeypad.getKey();

if(keypressed != NO_KEY)
{
    Serial.print(keypressed);



    if(keypressed > 47 && keypressed < 58)  // is between '0' and '9'
    {
        if(!mySwitch)
        {
            num1 = (num1 * 10) + (keypressed - 48);
        }
        else
        {
            num2 = (num2 * 10) + (keypressed - 48);
        }



    }

    if(keypressed == '=')
    {
        if(do_subtraction_flag)  // we want to subtract the numbers
        {
            answer = num1 - num2;
        }else if(multiply){

    answer = num1 * num2;
    }else if(divide){
    answer = num1 / num2;
    }
        else  // we want to add the numbers
        {
            answer = num1 + num2;
        }

        Serial.println(answer);
        num1 = 0;
        num2 = 0;
        mySwitch = false;
        do_subtraction_flag = false;
    multiply = false;
    divide = false;
    }
    else if(keypressed == '+')
    {
        mySwitch = true;
    }
else if(keypressed == '*'){
    mySwitch = true;
    multiply = true;
}else if(keypressed == '/'){
    mySwitch = true;
    divide = true;
}
    else if(keypressed == '-')
    {
        mySwitch = true;
        do_subtraction_flag = true;
    }else if (keypressed == 'C'){
      for (int i=0; i < 80; i++) 
      {
        Serial.write(8);  // print 80 times backspace (BS)
    }        
    }
}
}

我在这里感到困惑,因为我想用多个操作数(例如,2+1+3 或 2+1-2)计算多个数字,但是当我添加另一个变量“num3”时,我应该如何处理它?如果我将其放入 do_subtraction 标志中,如果用户输入 2-1+3 会怎样?是否可以使用此代码计算 3 个数字?我在这里感到困惑,但如果您也对我想要做什么感到困惑,请告诉我

【问题讨论】:

    标签: arduino calculator microcontroller


    【解决方案1】:

    创建一个数组来保存您输入的数字和运算符,然后在输入 == '=' 时循环遍历它们。让您的 num1 始终保存结果,而 num2 保存下一个数组值。

    【讨论】:

      猜你喜欢
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 2021-01-23
      相关资源
      最近更新 更多