Arduinoにおいて、さまざまな条件分けをしたいとき、if文で構成することがほとんどだと思います。
しかし、条件分岐が10とか20とか(あんまりないとは思いますが)あった時はどうしましょう。
C/C++言語にはswitch文があり、C/C++言語をベースとしているArduino言語も同じ構文が使えます。
以下にプログラム例を記載します。
switch (var) {
case 1:
// varが1のときに実行する処理
break;
case 2:
// varが1のときに実行する処理
break;
default:
// どのcaseラベルにも一致しないときに実行する処理
// defaultは、省略可能
}
varが変数であり、varが1の時、case 1の処理が実行されます。
varが2の時、case 2の処理が実行されます。
varが1, 2以外の時は、defaultの処理が実行されます。
case 1, case 2の処理後の “break;”はそれぞれのcaseの処理が終了したということを示す文です。
この文がないと、エラーを起こしたりします。
defaultの処理において、break; が必要ないのは、defaultは最後の条件分岐になり、最後の処理というのが明白なためです。
ただ、書いてはいけないわけではなく、書いても問題なくプログラムは動きます。
また、default: 自体も省略することができます。
if else構文のelseの省略のような感覚です。
個人的にはswitch case構文はif構文よりもプログラムを見たときのスッキリさはあると思います。
そこまで難しいコードでもないので、ぜひ使ってみてください。
コメント