C++ switch文をマスター:構文、使い方、実践例
switch文とは
switch文は変数を1回評価し、一致するcaseラベルに実行を分岐させることで、多方向の意思決定をシンプルにします。
これは、変数の値に基づいてコードブロックを選択する、クリーンで効率的なif…else if…ラダーと考えることができます。
このC++チュートリアルで学ぶ内容:
- switch文とは
- switchを使うべき場面
breakキーワードの役割- 構文と構造
- 実践例
switchを使うべき場面
単一の変数を固定された一組の定数と比較する必要がある場合に最適です。長いif…else if…チェーンよりも明確で高速なコードになります。
breakキーワード
switch内でbreakは現在のcaseを終了し、後続のcaseへのフォールスルーを防ぎます。省略すると実行が次のcaseへ続きます。
コンパイラがbreakに遭遇すると、制御はswitchの閉じ中括弧の次の文へジャンプします。
構文
典型的な構造:
switch (variable) {
case value1:
// code
break;
case value2:
// code
break;
default:
// code
}
- variable – 評価される式
- case – 比較対象の定数値
- break – switchブロックの実行を停止
- default – オプション;どのcaseにも一致しない場合に実行
例1
#include <iostream>
using namespace std;
int main() {
int x = 20;
switch (x) {
case 10:
cout << "X is 10";
break;
case 20:
cout << "X is 20";
break;
case 30:
cout << "X is 30";
break;
default:
cout << "X is not 10, 20 or 30";
break;
}
return 0;
}
出力:
コードのスクリーンショット:
コード解説:
<iostream>をインクルードしてコンソールI/Oを有効化- 簡潔さのため
std名前空間を使用 main()をエントリーポイントとして定義int x = 20;を宣言switch(x)でxを定数と比較- Case 10:「X is 10」を出力
- Case 20:「X is 20」を出力
- Case 30:「X is 30」を出力
- Default:10, 20, 30以外の値を処理
- 各caseは
break;で終了しフォールスルーを防止 - 正常終了を示す0を返却
例2
#include <iostream>
using namespace std;
int main() {
int choice;
cout << "Enter 1, 2 or 3: ";
cin >> choice;
switch (choice) {
case 1:
cout << "Choice 1";
break;
case 2:
cout << "Choice 2";
break;
case 3:
cout << "Choice 3";
break;
default:
cout << "Not 1, 2 or 3";
break;
}
}
出力:
コードのスクリーンショット:
コード解説:
- I/Oのため
<iostream>をインクルード std名前空間を使用int choice;を宣言- ユーザーにプロンプト:「Enter 1, 2 or 3: 」
- 入力を
choiceに読み取り choiceでswitchし、一致するcaseへ分岐- Case 1:「Choice 1」を出力
- Case 2:「Choice 2」を出力
- Case 3:「Choice 3」を出力
- Default:それ以外の入力を処理
- 各caseは
break;で終了
まとめ
- switch文はネストした
if…else if…文の簡潔な代替手段 - 構文がクリーンで実行は一般的に高速
- 変数を複数の定数値と照合する必要がある場合に使用
- 各
caseは変数を異なる値と比較 breakキーワードで意図しないフォールスルーを防止- オプションの
default句で未一致ケースを処理
C言語
- スイッチ付き回路:基本電気回路の実践ガイド
- C# switch 文をマスターする:構文、例、ベストプラクティス
- C# break 文:使い方とタイミングを徹底解説
- C++ break文完全ガイド:ループ脱出の仕組みと実例
- C++演算子を徹底解説:種類、例、サンプルプログラム付き
- C++ switch文をマスター:構文、使い方、実践例
- C++動的配列の確保をマスター:コード例付き実践ガイド
- C++構造体を実例で徹底解説
- C++ std::map完全ガイド:連想配列の実践的活用とコード例
- C++のstd::listをマスターする:構文、関数、実践例
- C++ structとclassの違い:構文、特徴、使い分けのベストプラクティス