我在 Arduino 上编写代码(与 C 非常相似,我不知道,或者很少),关于 switch/case 语句我有一个小问题。
我需要我的 Arduino 来做这个或那个,这取决于电位器的值(0 到 1023)。但是,我不知道如何告诉它大小写“0 到 200”。例如,我试过
case 0..250:
blablaSomeCode;
break;
等等......我该怎么做?
我真的不想写案例 1 案例 2 案例 3 ......
我在 Arduino 上编写代码(与 C 非常相似,我不知道,或者很少),关于 switch/case 语句我有一个小问题。
我需要我的 Arduino 来做这个或那个,这取决于电位器的值(0 到 1023)。但是,我不知道如何告诉它大小写“0 到 200”。例如,我试过
case 0..250:
blablaSomeCode;
break;
等等......我该怎么做?
我真的不想写案例 1 案例 2 案例 3 ......
您将不得不使用 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...)
}
switch(val)
{
case 0 ... 250:
inRange(val);
break;
default:
outOfRange();
break;
}
虽然上一个答案中的代码是有效的,但我会坚持使用 switch 语句,因为它非常适用于要解决的问题。
请注意,使用范围 ('...') 不符合ANSI C标准,但在 Arduino 环境中可以正常工作。