为什么switch语句返回“重复大小写值”,我该如何解决?

时间:2019-06-12 16:29:42

标签: arduino switch-statement arduino-c++

我正在尝试设置一个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

我希望得到任何结果;即使错了但它会返回“重复大小写值”

0 个答案:

没有答案