1

我正在尝试设置一个 arduino 红外传感器,当我尝试使用 switch 语句时,它返回“重复大小写值”。关于这个问题的任何建议或解释?顺便提一句。我是一个初学者,所以如果我犯了一些愚蠢的错误,请不要感到惊讶。

我尝试将 int 用于 val 变量,但它说有溢出,所以我使用 double 代替。我尝试查看与我的类似的其他一些问题,但它们都不适用于这里。

    //code starts here
    void loop() {
      constexpr long double val[10]= 
 {16724175,16718055,16743045,16716015,16726215,16734885,16728765,16730805,16732845,16738455}; //holds all values from infrared sensor
      int results_val;
      if (reciever.decode(&results)){  //not relevant 
        Serial.println(results.value);
        results_val = results.value;
        reciever.resume();
      }
      switch(results_val){ //should check which button was pressed
        case (int) val[0] : Serial.println(1);
        break;
        case (int) val[1] : Serial.println(2);
        break;
        case (int) val[2] : Serial.println(3);
        break;
        case (int) val[3] : Serial.println(4);
        break;
        case (int) val[4] : Serial.println(5);
        break;
        case (int) val[5] : Serial.println(6);
        break;
        case (int) val[6] : Serial.println(7);
        break;
        case (int) val[7] : Serial.println(8);
        break;
        case (int) val[8] : Serial.println(9);
        break;
        case (int) val[9] : Serial.println(0);
        break;
      }
    }
    //code ends here

我希望得到任何结果;即使错了;但它返回“重复的案例值”

4

0 回答 0