Tutorial
2.5. switch 文

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);
}