switch case文は、特定の変数の値に基づいて複数の条件をチェックし、該当する条件に応じた処理を実行します。以下に基本的なswitch case文の構文を示します:
switch (変数) {
case 値1:
// 値1に対する処理
break;
case 値2:
// 値2に対する処理
break;
case 値3:
// 値3に対する処理
break;
default:
// 上記のいずれの値にも該当しない場合の処理
break;
}
上記のコードでは、変数の値が値1と一致する場合は、// 値1に対する処理
の部分が実行されます。変数の値が値2と一致する場合は、// 値2に対する処理
の部分が実行されます。同様に、値3に対する処理も定義されています。もし変数の値がどの値にも一致しない場合は、default以下の処理が実行されます。
以下に、実際のコード例をいくつか示します。
例1: デジタル入力の状態に応じた処理
int buttonPin = 2;
int ledPin = 13;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
int buttonState = digitalRead(buttonPin);
switch (buttonState) {
case HIGH:
digitalWrite(ledPin, HIGH);
break;
case LOW:
digitalWrite(ledPin, LOW);
break;
}
}
上記のコードでは、デジタルピン2に接続されたボタンの状態を読み取り、その状態に応じてデジタルピン13に接続されたLEDの点灯・消灯を制御しています。
例2: 数値に応じた処理
int sensorValue = analogRead(A0);
switch (sensorValue) {
case 0:
// センサー値が0の場合の処理
break;
case 100:
// センサー値が100の場合の処理
break;
case 200:
// センサー値が200の場合の処理
break;
default:
// 上記のいずれの値にも該当しない場合の処理
break;
}
上記のコードでは、アナログピンA0からのセンサー値を読み取り、その値に基づいて異なる処理を実行しています。
これらはいくつかの基本的な例ですが、Arduinoのプログラムでswitch case文を使用することで、複雑な条件分岐を簡潔に表現することができます。自分のプロジェクトに応じて、適切な条件と処理を組み合わせて利用してみてください。