2.5. switch 文
概要
- 複数の条件に応じて,異なるコードブロックを実行する方法
switch
,case
,default
を使う
- 使用例
- ある変数の値に基づいて,多くの選択肢から一つを選ぶ場合に便利
- 注意
switch
文は等価性(==)の比較のみをサポートしている- 各
case
の後にはbreak
を忘れずに記述する(意図的な「フォールスルー」を除く)
実践
// day変数は週の現在の日を表し,1が月曜日,7が日曜日
int day = 1;
void setup() {
Serial.begin(9600);
}
void loop() {
// 変数 day の値を表示
Serial.print("day: ");
Serial.println(day);
// 変数 day に応じたメッセージをシリアルモニタに出力する
Serial.print("Today is:");
switch (day) {
case 1:
Serial.println("Monday"); // dayが1の場合,月曜日と表示
break;
case 2:
Serial.println("Tuesday"); // dayが2の場合,火曜日と表示
break;
case 3:
Serial.println("Wednesday"); // dayが3の場合,水曜日と表示
break;
case 4:
Serial.println("Thursday"); // dayが4の場合,木曜日と表示
break;
case 5:
Serial.println("Friday"); // dayが5の場合,金曜日と表示
break;
case 6:
Serial.println("Saturday"); // dayが6の場合,土曜日と表示
break;
case 7:
Serial.println("Sunday"); // dayが7の場合,日曜日と表示
break;
default:
Serial.println("Invalid day"); // dayが1-7の範囲外の場合,無効な日と表示
day = 1; // dayをリセットして正しい範囲に戻す
break;
}
// dayを1増やし,次の日に移る
day++;
// もしdayが7を超えたら,1にリセットして新しい週の始まりに戻る
if (day > 7) {
day = 1; // 日曜日の後は月曜日にリセット
}
delay(1000);
}