switch 文
CoddyのC++ジャーニー「基礎」セクションの一部 — レッスン 29/74。
switch文は、多方向のif文のようなものです。単一の条件を評価する代わりに、変数の値を複数のケースと照らし合わせてチェックし、一致するケースに関連付けられたコードを実行します。
switch文の基本的な構造は次のとおりです:
switch (variable) {
case value1:
// variableがvalue1と等しい場合に実行されるコード
break;
case value2:
// variableがvalue2と等しい場合に実行されるコード
break;
// ... その他のケース
default:
// どのケースにも一致しない場合に実行されるコード
}switchキーワードの後には、テストしたい変数を括弧内に記述します。- 各
caseは、変数の取り得る値を表します。 - 変数がそのケースの値と一致する場合、各
case内のコードが実行されます。
break文は重要です。caseが実行された後にswitchを抜けます。これがないと、実行は次のcaseへ「フォールスルー(そのまま進む)」してしまいます。defaultケースは任意であり、他のどのcaseにも一致しない場合に実行されます。
以下に例を示します:
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;
// ... 他の曜日のケース
default:
dayName = "Invalid day";
}チャレンジ
初心者月の番号(1月なら1、2月なら2など)を受け取り、それが属する季節を出力するプログラムを作成してください。ロジックには switch 文を使用してください。
季節とそれに対応する月は以下の通りです:
- Winter: 12月 (12), 1月 (1), 2月 (2)
- Spring: 3月 (3), 4月 (4), 5月 (5)
- Summer: 6月 (6), 7月 (7), 8月 (8)
- Autumn: 9月 (9), 10月 (10), 11月 (11)
- Invalid month: その他の入力の場合
チートシート
switch文は、変数を複数のケースと照合する多方向の条件分岐です:
switch (variable) {
case value1:
// variableがvalue1と等しい場合に実行されるコード
break;
case value2:
// variableがvalue2と等しい場合に実行されるコード
break;
default:
// どのケースにも一致しない場合に実行されるコード
}主な構成要素:
case: 変数の取り得る値を表しますbreak: ケースが実行された後にswitchを抜けます(フォールスルーを防ぎます)default: 他のどのケースにも一致しない場合に実行されるオプションのケースです
複数のケースを組み合わせることもできます:
switch (day) {
case 1:
case 2:
case 3:
dayName = "Start of week";
break;
default:
dayName = "Invalid day";
}自分で試してみよう
#include <iostream>
int main() {
int month;
std::cin >> month;
std::string season = "";
// 以下にコードを記述してください
std::cout << season << std::endl;
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。