カテゴリ: C言語 更新日: 2026/03/14

C言語のswitch文とif文の使い分けを徹底解説!初心者でも理解できる条件分岐の基本

C言語のswitch文とif文の使い分けを徹底解説
C言語のswitch文とif文の使い分けを徹底解説

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

生徒

「C言語のプログラムで、条件によって処理を変える方法を調べていたら、if文とswitch文が出てきました。どちらを使えばいいんですか?」

先生

「C言語では条件分岐の方法として、if文switch文がよく使われます。どちらも条件によって処理を変えるための仕組みですが、使う場面が少し違います。」

生徒

「同じ条件分岐なら、どちらでもいいように思えるんですが…違いがあるんですね?」

先生

「そうです。if文は複雑な条件を判断するときに便利で、switch文は値ごとに処理を分けるときに便利です。具体的な使い方を見ながら、分かりやすく解説していきましょう。」

1. C言語の条件分岐とは?

1. C言語の条件分岐とは?
1. C言語の条件分岐とは?

C言語のプログラムでは、処理を順番に実行するだけでなく、条件によって動きを変えることができます。このような仕組みを条件分岐と呼びます。

例えば次のような場面です。

  • 点数が60点以上なら「合格」と表示する
  • 数字によってメニューを切り替える
  • ログイン状態なら画面を表示する

このような「条件によって処理を変える仕組み」を実現するのが、if文switch文です。

どちらもC言語の基本構文であり、プログラミング初心者が最初に学ぶ重要な文法です。

2. if文の特徴(複雑な条件に強い)

2. if文の特徴(複雑な条件に強い)
2. if文の特徴(複雑な条件に強い)

if文は、条件が正しいかどうかを判断して処理を実行する仕組みです。

if文は「比較」や「計算」を含む条件を書くことができるため、柔軟な条件分岐が可能です。

例えば次のような条件を書くことができます。

  • 数値の大小比較
  • 複数条件の組み合わせ
  • 範囲チェック

例として点数判定を見てみましょう。


#include <stdio.h>

int main()
{
    int score = 75;

    if(score >= 60)
    {
        printf("合格です\n");
    }
    else
    {
        printf("不合格です\n");
    }

    return 0;
}

このようにif文は「60以上かどうか」という比較条件を使って判断できます。


合格です

このような条件はswitch文では書くことができないため、複雑な条件はif文を使うのが基本です。

3. switch文の特徴(値ごとの分岐に強い)

3. switch文の特徴(値ごとの分岐に強い)
3. switch文の特徴(値ごとの分岐に強い)

switch文は、1つの値を基準にして処理を分岐するときに使います。

例えば「数字によって処理を変える」場合に便利です。

メニュー番号の例を見てみましょう。


#include <stdio.h>

int main()
{
    int menu = 2;

    switch(menu)
    {
        case 1:
            printf("ハンバーガー\n");
            break;

        case 2:
            printf("ポテト\n");
            break;

        case 3:
            printf("ドリンク\n");
            break;

        default:
            printf("メニューにありません\n");
    }

    return 0;
}

ポテト

このように、値ごとに処理を分けたい場合はswitch文の方が読みやすくなります。

4. if文とswitch文の違い

4. if文とswitch文の違い
4. if文とswitch文の違い

C言語初心者が迷いやすいのが「どちらを使えばよいのか」という点です。

簡単に違いを整理すると次のようになります。

比較項目 if文 switch文
条件の自由度 とても高い 値比較のみ
範囲条件 可能 不可
値の分岐 可能 得意
読みやすさ 条件次第 多分岐で読みやすい

つまり、

  • 複雑な条件 → if文
  • 値ごとの分岐 → switch文

このように覚えると理解しやすくなります。

5. if文で複数条件を書く例

5. if文で複数条件を書く例
5. if文で複数条件を書く例

if文の大きな特徴は、複数条件を組み合わせられることです。

例えば年齢チェックの例です。


#include <stdio.h>

int main()
{
    int age = 20;

    if(age >= 20 && age < 65)
    {
        printf("成人です\n");
    }

    return 0;
}

ここで使われている&&は「論理演算子」と呼ばれ、条件を組み合わせる記号です。

このような条件はswitch文では書けないため、if文を使う必要があります。


成人です

6. switch文が読みやすくなる例

6. switch文が読みやすくなる例
6. switch文が読みやすくなる例

次に、if文で書くと読みにくくなるケースを見てみます。


if(num == 1)
{
    printf("春\n");
}
else if(num == 2)
{
    printf("夏\n");
}
else if(num == 3)
{
    printf("秋\n");
}
else if(num == 4)
{
    printf("冬\n");
}

これをswitch文にすると、次のように整理されます。


switch(num)
{
    case 1:
        printf("春\n");
        break;

    case 2:
        printf("夏\n");
        break;

    case 3:
        printf("秋\n");
        break;

    case 4:
        printf("冬\n");
        break;
}

このように、同じ変数を何度も比較する場合はswitch文の方が見やすくなります。

7. C言語初心者が覚えておきたい使い分けのコツ

7. C言語初心者が覚えておきたい使い分けのコツ
7. C言語初心者が覚えておきたい使い分けのコツ

C言語のプログラミングでは、条件分岐を正しく使い分けることがとても重要です。

初心者のうちは次のように覚えると分かりやすいです。

  • 条件が1つの値 → switch文
  • 複雑な条件 → if文
  • 範囲判定 → if文
  • メニュー選択 → switch文

これはプログラムを「読みやすくする」ためにも重要です。

プログラムは自分だけでなく、他の人が読むことも多いため、適切な構文を選ぶことで理解しやすいコードを書くことができます。

C言語のif文とswitch文の違いを理解して使い分けられるようになると、条件分岐の設計がとても分かりやすくなり、プログラム全体の構造も整理されたものになります。

まとめ

まとめ
まとめ

if文とswitch文の使い分けをしっかり理解しよう

ここまで、C言語の条件分岐の基本としてif文switch文の違いと使い分けについて解説してきました。C言語のプログラミングでは、条件によって処理を変えることが非常に多く、条件分岐の理解はとても重要です。特にC言語の初心者は、if文とswitch文の違いを理解しておくことで、プログラムの読みやすさや設計のしやすさが大きく変わります。

C言語の条件分岐では、基本的に複雑な条件を判断したい場合はif文を使用し、一つの値に応じて処理を分岐したい場合はswitch文を使用します。この考え方を覚えておくだけでも、プログラムを書くときの判断がとても楽になります。

if文は、比較演算子や論理演算子を組み合わせることで、さまざまな条件を書くことができます。例えば数値の大小比較、複数条件の組み合わせ、範囲判定など、多くの場面で柔軟に対応できるのが特徴です。C言語のプログラムでは、ユーザー入力の判定や、数値のチェック、ログイン状態の判定など、複雑な条件が必要になることが多いため、if文はとても重要な構文といえます。

一方でswitch文は、特定の変数の値によって処理を分ける場合に非常に読みやすくなる構文です。例えばメニュー番号、コマンド番号、選択番号などのように、数値によって処理を切り替えるようなプログラムではswitch文を使うとコードが整理されます。if文で同じ変数を何度も比較するよりも、switch文の方が構造が分かりやすくなることが多いです。

また、switch文ではcasebreakを使うことで、値ごとに処理を分岐させることができます。そしてどの条件にも当てはまらない場合にはdefaultを使うことで、例外的な処理を書くことができます。これはプログラムの安全性を高めるためにも重要です。

プログラムを書くときには、処理が正しく動くことだけでなく、コードの読みやすさも重要です。C言語のプログラムは一度書いたら終わりではなく、後から修正したり、別の人が読むこともあります。そのため、条件分岐の書き方を整理しておくことは、プログラムの品質を高めることにもつながります。

特に初心者のうちは、次のような考え方でif文とswitch文を使い分けると理解しやすくなります。

  • 数値の比較や範囲判定を行う場合はif文を使う
  • 複数の条件を組み合わせる場合はif文を使う
  • 一つの値によって処理を分ける場合はswitch文を使う
  • メニュー番号やコマンド番号の分岐はswitch文が分かりやすい

このように整理して覚えておくことで、C言語の条件分岐を自然に使い分けられるようになります。C言語のプログラミング学習では、基本構文をしっかり理解することがとても重要です。if文とswitch文はその中でも特に使用頻度が高く、実務のプログラムでも多く使われています。

C言語の条件分岐を正しく理解すると、プログラムの流れを自分で設計できるようになります。例えばユーザー入力のチェック、メニュー選択の処理、ゲームの状態分岐など、さまざまな場面で応用することができます。条件分岐の考え方を理解することで、プログラムを書く力が大きく成長していきます。

条件分岐のサンプルプログラム

最後に、if文とswitch文の使い分けを確認できる簡単なサンプルプログラムを見てみましょう。このプログラムでは、点数判定にはif文を使い、メニュー番号の分岐にはswitch文を使用しています。


#include <stdio.h>

int main()
{
    int score = 70;
    int menu = 3;

    /* 点数判定(if文) */
    if(score >= 60)
    {
        printf("試験に合格しました\n");
    }
    else
    {
        printf("試験に不合格です\n");
    }

    /* メニュー判定(switch文) */
    switch(menu)
    {
        case 1:
            printf("メニュー:ハンバーガー\n");
            break;

        case 2:
            printf("メニュー:ポテト\n");
            break;

        case 3:
            printf("メニュー:ドリンク\n");
            break;

        default:
            printf("メニューが存在しません\n");
    }

    return 0;
}

試験に合格しました
メニュー:ドリンク

このように、C言語では条件の種類によってif文とswitch文を使い分けることで、プログラムがとても読みやすくなります。条件分岐はプログラミングの基本となる考え方なので、実際にコードを書きながら理解を深めていくことが大切です。C言語の学習を進めながら、さまざまな条件分岐のパターンを試してみてください。

先生と生徒の振り返り会話

生徒

「C言語のif文とswitch文の違いがよく分かりました。複雑な条件はif文で、値ごとの分岐はswitch文を使うんですね。」

先生

「その通りです。C言語の条件分岐では、条件の種類によって構文を使い分けることが重要です。if文は比較や範囲チェックに強く、switch文は値ごとの処理分岐に向いています。」

生徒

「同じ変数を何度も比較する場合は、switch文の方が読みやすくなるというのも理解できました。」

先生

「そうですね。プログラムを書くときは、処理が正しいだけでなく、コードの見やすさもとても大切です。C言語では読みやすいコードを書くことが、バグを減らすことにもつながります。」

生徒

「これからC言語のプログラムを書くときは、条件分岐を考えてif文とswitch文を使い分けるようにします。」

先生

「とても良い心がけです。C言語の条件分岐を理解すれば、プログラムの流れを自由に設計できるようになります。これからもif文やswitch文を使ったサンプルプログラムをたくさん書いて、条件分岐の理解をさらに深めていきましょう。」

カテゴリの一覧へ
新着記事
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++開発環境構築ガイド