C/Arduino开关盒

Jo *_*ina 4 c robot arduino case switch-statement

我正在Arduino上编写代码(非常类似于C,我不知道,或者很少),我对switch/case语句有一点问题.

我需要我的Arduino来做这个或那个取决于电位计的值(0到1023).但是,我不知道如何判断它是"0到200"的情况.例如,我试过了

case 0..250:
  blablaSomeCode;
  break;
Run Code Online (Sandbox Code Playgroud)

等等......我怎么能这样做?

我真的不想写案例1案例2案例3 ......

Nic*_*laz 5

您将不得不使用if的级联(也是/特别是如果您的值是浮点数)

int value= ...; 

if (value>=0 && value<=250 {
    // some code 0..250
}
else 
if (value>250 && value<=500) {
    // some code 251..500
}
else 
if (value>500 && value<=1000) {
    // etc.
}
else {
    // all other values (less than zero or 1001...)
} 
Run Code Online (Sandbox Code Playgroud)


jit*_*ter 5

switch(val)
{
    case 0 ... 250:
        inRange(val);
        break;

    default:
        outOfRange();
        break;
}
Run Code Online (Sandbox Code Playgroud)

虽然上一个答案中的代码是有效的,但我会坚持使用 switch 语句,因为它非常适用于要解决的问题。

请注意,使用范围('...')不符合ANSI C标准,但它在 Arduino 环境中工作正常。