カテゴリ: C++ 更新日: 2026/03/19

C++のswitch文を完全攻略!多分岐処理とbreakの役割を徹底解説

switch文の基本とbreakの役割
switch文の基本とbreakの役割

先生と生徒の会話形式で理解しよう

生徒

「先生、選択肢が5個も10個もあるとき、if文をたくさん書くのは大変じゃないですか?」

先生

「そんな時に便利なのが『switch文(スイッチぶん)』です。特定の値に応じて処理をパッと切り替えることができるんですよ。」

生徒

「切り替えスイッチみたいで分かりやすそうですね!どうやって使うんですか?」

先生

「基本の書き方から、重要な『break(ブレイク)』の役割まで、初心者の方にも分かりやすく説明しますね!」

1. switch文とは?たくさんの分岐をスッキリ整理

1. switch文とは?たくさんの分岐をスッキリ整理
1. switch文とは?たくさんの分岐をスッキリ整理

C++のswitch文は、ある変数の値を見て、その値に一致する場所に処理をジャンプさせるための構文です。if文でも同じことはできますが、選択肢が非常に多い場合、switch文を使ったほうがプログラムが見やすく、スッキリと整理されます。

プログラミング未経験の方には、「エレベーターのボタン」をイメージしていただくと分かりやすいでしょう。押したボタンの階数(値)に応じて、目的のフロア(処理)へ直行する仕組みです。この「値によって行き先を決める」という考え方は、メニュー画面の選択やゲームの進行管理など、多くの場面で使われています。

2. switch文の基本構文!caseとdefaultを覚えよう

2. switch文の基本構文!caseとdefaultを覚えよう
2. switch文の基本構文!caseとdefaultを覚えよう

switch文を書くときは、まず switch(変数) と書き、その後に波括弧 {} を用意します。その中に、値ごとの行き先として case 値: (ケース)を並べていきます。また、どの値にも当てはまらなかった時のために default: (デフォルト)という予備の行き先も用意するのが一般的です。

「case」は日本語で「〜の場合」という意味です。例えば「case 1:」なら「値が1の場合」という意味になります。最後の「default」は「それ以外の場合」という意味で、想定外の数字が入ってきた時のガード役として機能します。これにより、プログラムが迷子になるのを防ぐことができます。


int num = 2;

switch (num) {
    case 1:
        std::cout << "1が選ばれました" << std::endl;
        break;
    case 2:
        std::cout << "2が選ばれました" << std::endl;
        break;
    default:
        std::cout << "それ以外です" << std::endl;
        break;
}

2が選ばれました

3. 超重要!break(ブレイク)がないとどうなる?

3. 超重要!break(ブレイク)がないとどうなる?
3. 超重要!break(ブレイク)がないとどうなる?

switch文で最も注意が必要なのが break; (ブレイク)という命令です。これは「ここで処理を終えて、switch文の外に出る」という合図です。もしこれを書き忘れると、コンピューターは次の case の中身まで勝手に実行してしまいます。これを「フォールスルー」と呼びます。

パソコンを触ったことがない方に例えるなら、電車の駅で降りるのを忘れて、そのまま次の駅まで運ばれてしまうような状態です。自分の降りたい駅(case)に着いたら、必ずドアを開けて外に出る(break)必要があります。特別な理由がない限り、各 case の終わりには必ず break; を書くのがC++の鉄則です。


int color = 1; // 1は「赤」とする

switch (color) {
    case 1:
        std::cout << "止まれ!" << std::endl;
        // もしここにbreakがないと...
    case 2:
        std::cout << "進め!" << std::endl;
        break;
}

止まれ!
進め!

このように、赤信号なのに「進め!」まで表示されてしまう大事故が起きてしまいます。break の重要性がよく分かりますね。

4. switch文で使えるデータ型と使えないデータ型

4. switch文で使えるデータ型と使えないデータ型
4. switch文で使えるデータ型と使えないデータ型

実は、switch文は何でも判定できるわけではありません。C++のルールでは、判定に使えるのは「整数(int)」や「文字(char)」など、キリのいい値だけです。そのため、小数(floatやdouble)や、長い文章(string)を直接 case に並べることはできません。

「文章を判定したいときはどうするの?」と思うかもしれませんが、その場合は if 文を使うか、文章に番号を割り振ってから switch文に渡すといった工夫をします。このように、目的によって「if文」と「switch文」を使い分けるのが、スマートなプログラミングのコツです。初心者の方はまず「整数や文字ならswitch文が使える」と覚えておきましょう。

5. 複数のケースをまとめるテクニック

5. 複数のケースをまとめるテクニック
5. 複数のケースをまとめるテクニック

あえて break を書かないことで、複数の case で同じ処理をさせるテクニックもあります。例えば、入力された数字が「1でも2でも3でも当たり!」というような場合です。

やり方は簡単で、case を縦に並べて最後に一つだけ処理と break を書くだけです。これを知っておくと、同じコードを何度も書く手間が省け、ミスも減らすことができます。パソコンのキーボードで文字を打つ量を減らせるのは、プログラマにとって嬉しいことなのです。


int month = 8;

switch (month) {
    case 7:
    case 8:
    case 9:
        std::cout << "夏休み期間です!" << std::endl;
        break;
    default:
        std::cout << "通常授業です。" << std::endl;
        break;
}

夏休み期間です!

6. 文字(char)を使ったメニュー選択の例

6. 文字(char)を使ったメニュー選択の例
6. 文字(char)を使ったメニュー選択の例

switch文は数字だけでなく、アルファベット一文字などの「文字」も判定できます。ゲームの操作(Aボタンで攻撃、Bボタンで防御など)を作る際によく使われる手法です。文字を扱うときは、シングルクォーテーション ' ' で囲むのがルールです。

「文字」と「文字列(文章)」の違いは、パソコン初心者の方が最初につまずきやすいポイントですが、「文字は一文字だけ、文字列は二文字以上の並び」と考えるとスッキリします。switch文はこの「一文字だけ」を扱うのが大得意です。自分だけのメニュー画面を作ってみると、プログラミングがどんどん楽しくなりますよ。


char command = 'A';

switch (command) {
    case 'A':
        std::cout << "攻撃を開始します!" << std::endl;
        break;
    case 'B':
        std::cout << "身を固めて防御しました。" << std::endl;
        break;
    default:
        std::cout << "コマンドが正しくありません。" << std::endl;
        break;
}

攻撃を開始します!

7. defaultの重要性!「もしも」に備える安心設計

7. defaultの重要性!「もしも」に備える安心設計
7. defaultの重要性!「もしも」に備える安心設計

プログラムを作っていると、予想外の入力が来ることがあります。例えば、1から3まで選ぶメニューで「99」と入力された場合などです。そんな時に default: が設定されていないと、プログラムは何の反応もしなくなり、使う人は「壊れたのかな?」と不安になってしまいます。

どんなに単純なプログラムでも、default を用意して「その入力は受け付けられません」と教えてあげるのは、使う人への優しさ(ユーザーフレンドリー)です。このような細かい配慮ができるようになると、初心者から一歩抜け出した、信頼されるプログラマに近づくことができます。

8. if文とswitch文、どっちを使うのが正解?

8. if文とswitch文、どっちを使うのが正解?
8. if文とswitch文、どっちを使うのが正解?

最後に、誰もが迷う「使い分け」についてです。基準はシンプルに考えましょう。条件が「10点より大きいか」「AかつBか」のように複雑な範囲や組み合わせなら if 文、値が「1のとき」「2のとき」とはっきり決まっているなら switch 文が適しています。

もし迷ったら、最初は if 文で書いてみても構いません。後から「あ、これ switch文に書き換えたほうが読みやすいな」と気づくことが大切です。パソコン操作と同じで、プログラミングも何度も触っているうちに、自然と使い分けの感覚が身についていきます。まずは恐れずに、いろいろな書き方を試してみることが一番の上達法です。

9. switch文をマスターしてコードを綺麗に保とう

9. switch文をマスターしてコードを綺麗に保とう
9. switch文をマスターしてコードを綺麗に保とう

switch文を使いこなせるようになると、コードの見た目が劇的に整います。整理されたコードは、間違いを見つけやすく、後で修正するのも簡単です。今回学んだ「caseのルール」と「breakの役割」を忘れずに、あなたのプログラムに組み込んでみてください。

プログラミング未経験の方は、まず自分の身の回りにある「選択肢」を switch文で表現できないか考えてみるのがおすすめです。自動販売機のボタン、曜日の判定、占いの結果……アイデア次第で、switch文はあなたのプログラムをより豊かなものに変えてくれます。焦らず一歩ずつ、楽しみながらC++の世界を冒険していきましょう!

カテゴリの一覧へ
新着記事
New1
C++
C++の値渡し(pass by value)とは?仕組みと使い方を初心者向けに徹底解説
New2
C++
C++とポインタ・参照の重要性をやさしく解説!初心者でも理解できる仕組みと使い方
New3
C++
GCCでC++開発を始める方法!初心者向け完全ガイド
New4
Rust
Rustの式(Expression)と文(Statement)の違いを徹底解説!初心者が迷うセミコロンの秘密
人気記事
No.1
Java&Spring記事人気No1
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.2
Java&Spring記事人気No2
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド
No.3
Java&Spring記事人気No3
C言語
LinuxでC言語開発環境を構築する方法【GCCとMakefileの基本】
No.4
Java&Spring記事人気No4
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.5
Java&Spring記事人気No5
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.6
Java&Spring記事人気No6
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.7
Java&Spring記事人気No7
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.8
Java&Spring記事人気No8
C++
CMakeの役割と導入方法をやさしく解説!C++開発環境構築ガイド