switch case文
switch case文はif文と同じ様に、変数の値に応じて動作や処理を変える事が出来ます。動作や処理を細かく制御したい時などは、if文に比べ少ない文字数で記述出来て便利です。
使用例
試しにこのプログラムを実行すると、13ピンのLEDが0.1秒間隔で3分の2の確率で点灯、3分の1の確率で消灯を繰り返します。
void setup() { //一回だけ実行する pinMode(13, OUTPUT); //LEDを接続した13番ピンを出力用に設定する } void loop() { //{}内を無限ループで実行する int i = random (3); //iに0~2の整数の中で発生させた乱数を代入する。 switch (i) { //変数iがどの条件に一致するかcaseを順に調べ、一致した次の行を実行 case 1: // iが1のとき実行される digitalWrite(13, HIGH); //LEDが接続された13番ピンをHIGH(5V)にする break; case 2: //iが2のとき実行される digitalWrite(13, LOW); //LEDが接続された13番ピンをLOW(0V)にする break; default: //どのcaseにも一致しなかったとき実行される(defaultは省略可能) digitalWrite(13, HIGH); //LEDが接続された13番ピンをHIGH(5V)にする } delay(100); //100ms(0.1秒)LEDを点灯した状態で止める }
図1:プログラム例
「switch (i) {」から「}」内において、変数iの値と「case」直後の数字を上から順に参照して行き、数値が一致した場合のみ「case」直後の命令を実行します。
命令実行後に「break」を付けないと次の「case」参照が続きます。
「default」はどの「case」にも該当しなかった場合に直後の命令が実行されます。「default」を省略する事も可能です。
励みになりますのでよければクリック下さい(^o^)/