【C言語】switch文の使い方についてわかりやすく詳しく解説

この記事では、C言語のプログラミングにおいて重要な制御文である「switch文」の使い方について解説します。

switch文を使うことで、複数の条件によって処理を分岐させることができます。

具体的な使い方や注意点、さらには代替手段についても紹介します。

初心者の方でもわかりやすく、実際のプログラム例を交えながら解説していきますので、ぜひ参考にしてみてください。

目次から探す

switch文とは

switch文は、プログラミング言語Cにおいて、複数の条件によって処理を分岐させるための制御文です。

条件によって実行する処理を選択する際に使用されます。

switch文では、指定した式の値によって、複数のcase節の中から一致するものを探し、その処理を実行します。

一致するcase節が見つからない場合は、default節の処理が実行されます。

switch文の構文は以下のようになります。


switch (式) {
    case 値1:
        // 値1に対する処理
        break;
    case 値2:
        // 値2に対する処理
        break;
    ...
    default:
        // 上記のいずれの値にも一致しない場合の処理
        break;
}

switch文の使い方

switch文は、複数の条件によって処理を分岐させるための制御文です。

単純な値の比較や複数の条件を組み合わせた処理を行う際に便利です。

以下では、switch文の使い方について詳しく説明します。

単純な値の比較

switch文では、指定した式の値とcase文の値を比較し、一致する場合に処理を実行します。

以下の例では、変数numの値に応じて、対応するメッセージを表示するプログラムを示します。


#include <stdio.h>
int main() {
    int num = 2;
    switch (num) {
        case 1:
            printf("numは1です。\n");
            break;
        case 2:
            printf("numは2です。\n");
            break;
        case 3:
            printf("numは3です。\n");
            break;
        default:
            printf("numは1〜3の範囲外です。\n");
            break;
    }
    return 0;
}

上記のプログラムを実行すると、変数numの値に応じて対応するメッセージが表示されます。

このように、switch文では変数の値に応じて処理を分岐させることができます。

case文の使い方

case文は、switch文の中で条件を指定するための文です。

caseの後には比較する値を指定し、コロン(:)で終了します。

以下の例では、変数monthの値に応じて、対応する季節を表示するプログラムを示します。


#include <stdio.h>
int main() {
    int month = 4;
    switch (month) {
        case 3:
        case 4:
        case 5:
            printf("春です。\n");
            break;
        case 6:
        case 7:
        case 8:
            printf("夏です。\n");
            break;
        case 9:
        case 10:
        case 11:
            printf("秋です。\n");
            break;
        case 12:
        case 1:
        case 2:
            printf("冬です。\n");
            break;
        default:
            printf("月の値が正しくありません。\n");
            break;
    }
    return 0;
}

上記のプログラムを実行すると、変数monthの値に応じて対応する季節が表示されます。

case文では、複数の値をまとめて指定することもできます。

break文の役割

switch文では、一致するcase文の処理を実行した後、break文を使用してswitch文を終了させる必要があります。

break文を使用しない場合、一致したcase文の処理だけでなく、その後のcase文の処理も実行されてしまいます。

以下の例を見てみましょう。


#include <stdio.h>
int main() {
    int num = 2;
    switch (num) {
        case 1:
            printf("numは1です。\n");
        case 2:
            printf("numは2です。\n");
        case 3:
            printf("numは3です。\n");
        default:
            printf("numは1〜3の範囲外です。\n");
    }
    return 0;
}

上記のプログラムを実行すると、変数numの値が2であるため、numは2です。numは3です。のメッセージが表示されます。

break文を使用することで、一致したcase文の処理のみが実行されるようになります。

default文の使い方

default文は、どのcase文にも一致しない場合に実行される処理を指定するための文です。

switch文の最後にdefault文を記述することで、どのcase文にも一致しない場合の処理を行うことができます。

以下の例では、変数dayの値に応じて、対応する曜日を表示するプログラムを示します。


#include <stdio.h>
int main() {
    int day = 7;
    switch (day) {
        case 1:
            printf("日曜日です。\n");
            break;
        case 2:
            printf("月曜日です。\n");
            break;
        case 3:
            printf("火曜日です。\n");
            break;
        case 4:
            printf("水曜日です。\n");
            break;
        case 5:
            printf("木曜日です。\n");
            break;
        case 6:
            printf("金曜日です。\n");
            break;
        case 7:
            printf("土曜日です。\n");
            break;
        default:
            printf("曜日の値が正しくありません。\n");
            break;
    }
    return 0;
}

上記のプログラムを実行すると、変数dayの値に応じて対応する曜日が表示されます。

default文を使用することで、どのcase文にも一致しない場合の処理を行うことができます。

以上が、switch文の使い方についての説明です。

switch文を活用することで、複数の条件による処理の分岐をスムーズに行うことができます。

是非、実際にプログラムを書いてみて、その使い方を体験してみてください。

1 2 3 4

目次から探す