2013-06-02 97 views
3

我在Arduino上編寫代碼(非常類似於C,我不知道,或者很少),而且我對開關/外殼聲明有一些小問題。C/Arduino開關盒

我需要我的Arduino做這個或那個取決於電位器(0到1023)的值。但是,我不知道如何告訴它「0到200」的情況。例如,我試過

case 0..250: 
    blablaSomeCode; 
    break; 

等等......我該怎麼辦?

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

回答

5

你將不得不使用的級聯如果的(也/特別是如果你的價值是一個浮點數)

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...) 
} 
+0

非常感謝!我實際上編寫了一個名爲isIn的函數來驗證它!但你的代碼要快得多! –

+0

很高興聽到!如果表現是一個問題,您可以以最常見的情況靠近頂部的方式重新排序。 (請考慮檢查答案是否正確。) – Nicholaz

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

    default: 
     outOfRange(); 
     break; 
} 

儘管前面的答案中的代碼是有效的,但我會堅持使用switch語句,因爲它非常適用於要解決的問題。

請注意,使用範圍('...')不符合ANSI C標準,但它在Arduino環境中工作正常。