C/Arduino 开关盒

问题描述 投票:0回答:2

我正在 Arduino 上编写代码(与 C 非常相似,我不知道,或者很少),并且我对 switch/case 语句有一个小问题。

我需要我的 Arduino 根据电位计的值(0 到 1023)执行此或操作。但是,我不知道如何告诉它“0到200”的情况。例如,我尝试过

case 0..250:
  blablaSomeCode;
  break;

等等...我该怎么办?

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

c++ arduino switch-statement
2个回答
6
投票

您将必须使用一系列 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...)
} 

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

    default:
        outOfRange();
        break;
}

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

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

© www.soinside.com 2019 - 2024. All rights reserved.