我在Arduino上編寫代碼(非常類似於C,我不知道,或者很少),而且我對開關/外殼聲明有一些小問題。C/Arduino開關盒
我需要我的Arduino做這個或那個取決於電位器(0到1023)的值。但是,我不知道如何告訴它「0到200」的情況。例如,我試過
case 0..250:
blablaSomeCode;
break;
等等......我該怎麼辦?
我真的不想寫案例1例2例3 ...
我在Arduino上編寫代碼(非常類似於C,我不知道,或者很少),而且我對開關/外殼聲明有一些小問題。C/Arduino開關盒
我需要我的Arduino做這個或那個取決於電位器(0到1023)的值。但是,我不知道如何告訴它「0到200」的情況。例如,我試過
case 0..250:
blablaSomeCode;
break;
等等......我該怎麼辦?
我真的不想寫案例1例2例3 ...
你將不得不使用的級聯如果的(也/特別是如果你的價值是一個浮點數)
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環境中工作正常。
非常感謝!我實際上編寫了一個名爲isIn的函數來驗證它!但你的代碼要快得多! –
很高興聽到!如果表現是一個問題,您可以以最常見的情況靠近頂部的方式重新排序。 (請考慮檢查答案是否正確。) – Nicholaz