4

私はArduinoでコードを書いています(私が知らないCに非常に似ているか、ほとんどありません)、switch/caseステートメントに関して少し問題があります。

ポテンショメータの値(0〜1023)に応じて、Arduinoでこれを行う必要があります。ただし、「0から200」の大文字と小文字を区別する方法がわかりません。たとえば、私は試しました

case 0..250:
  blablaSomeCode;
  break;

などなど… どうしたらいいの?

ケース 1 ケース 2 ケース 3 とは、あまり書きたくありません。

4

2 に答える 2

6

You will have to use a cascade of if's (also/especially if your value is a floating point number)

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...)
} 
于 2013-06-02T17:36:32.667 に答える
5
switch(val)
{
    case 0 ... 250:
        inRange(val);
        break;

    default:
        outOfRange();
        break;
}

前の回答のコードは有効ですが、解決する問題に非常に適しているため、switch ステートメントに固執します。

範囲 ('...') の使用はANSI C標準に準拠していませんが、Arduino 環境では問題なく動作することに注意してください。

于 2013-06-17T17:59:15.333 に答える