switch 文
CoddyのC++ジャーニー「基礎」セクションの一部。レッスン 29/74。
switch文は、複数の分岐を持つif文のようなものです。単一の条件を評価する代わりに、変数の値を複数のケースと照合し、一致するケースに関連付けられたコードを実行します。
switch文の基本的な構造は次のとおりです。
switch (variable) {
case value1:
// variable が value1 と等しい場合に実行するコード
break;
case value2:
// variable が value2 と等しい場合に実行するコード
break;
// ... さらに多くのケース
default:
// どの case にも一致しない場合に実行するコード
}switchキーワードの後には、テストしたい変数を括弧で囲んで指定します。- 各
caseは、変数が取りうる値を表します。 - 各
case内のコードは、変数の値がそのケースの値と一致した場合に実行されます。
break文は重要です。ケースが実行された後、switchを終了します。これがないと、実行が次のケースへ「フォールスルー」します。defaultケースは省略可能で、ほかのケースがどれも一致しない場合に実行されます。
例を見てみましょう:
int day = 3;
std::string dayName;
switch (day) {
case 1:
dayName = "Monday";
break;
case 2:
dayName = "Tuesday";
break;
// ... 他の曜日のケース
default:
dayName = "Invalid day";
}複数のケースを1つにまとめることもできます:
int day = 3;
std::string dayName;
switch (day) {
case 1:
case 2:
case 3:
dayName = "Start of week";
break;
// ... 他の曜日のcase
default:
dayName = "Invalid day";
}チャレンジ
初心者月番号(1は1月、2は2月など)を受け取り、その月が属する季節を出力するプログラムを作成してください。ロジックにはswitch文を使用してください。
季節と対応する月は次のとおりです。
- 冬: 12月(12)、1月(1)、2月(2)
- 春: 3月(3)、4月(4)、5月(5)
- 夏: 6月(6)、7月(7)、8月(8)
- 秋: 9月(9)、10月(10)、11月(11)
- Invalid month: その他の選択肢の場合
自分で試してみよう
#include <iostream>
int main() {
int month;
std::cin >> month;
std::string season = "";
// 以下にコードを書いてください
std::cout << season << std::endl;
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: C++オンラインコンパイラ