C言語マスターのための5ステップ!switch-case文と複数条件の使い方

C言語のswitch-case文と複数条件の理解に役立つ図解C言語
この記事は約6分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

プログラミングの世界では、複数の条件に対応する処理を行うことが多々あります。

そのための強力なツールとして、C言語にはswitch-case文という構文があります。

この記事では、C言語を使ってプログラミングをする際に、どのようにswitch-case文と複数条件を使うのかを5つのステップで解説します。

初心者から中級者まで、理解を深めていただくことを目指します。

●C言語のswitch-case文とは

まずは、基本から理解していきましょう。

C言語のswitch-case文は、ある変数の値によって処理を分岐させるための文です。

switch文に続いて変数を指定し、その変数の値に応じて実行する処理をcase文で指定します。

このように、switch-case文は一つの変数が取りうる複数の値に対して異なる処理を実行する場面で有効に使用することができます。

●switch-case文の基本的な使い方

○サンプルコード1:switch-case文の基本形

では、実際にswitch-case文を用いたサンプルコードを見てみましょう。

#include <stdio.h>

int main() {
    int number = 2;

    switch (number) {
        case 1:
            printf("number is 1.\n");
            break;
        case 2:
            printf("number is 2.\n");
            break;
        default:
            printf("number is not 1 or 2.\n");
    }

    return 0;
}

上記のコードでは、変数numberをswitch文で評価し、その値によって異なる処理を行っています。

具体的には、numberの値が1なら”number is 1.”と表示し、2なら”number is 2.”と表示します。

値が1でも2でもない場合は、defaultの処理が実行され、”number is not 1 or 2.”と表示されます。

●複数条件の使い方

○サンプルコード2:複数条件の基本形

次に、複数条件を用いる方法を見ていきましょう。

C言語では、if文を使って複数条件を設定することができます。

#include <stdio.h>

int main() {
    int number = 10;

    if (number > 5 && number < 15) {
        printf("number is between 5 and 15.\n");
    } else {
        printf("number is not between 5 and 15.\n");
    }

    return 0;
}

このコードでは、変数numberが5より大きく、かつ15より小さい場合、”number is between 5 and 15.”と表示します。

この条件を満たさない場合は、”number is not between 5 and 15.”と表示します。

●switch-case文と複数条件の応用

○サンプルコード3:switch-case文と複数条件の応用例

switch-case文と複数条件を組み合わせることで、より複雑な条件分岐を実現することができます。

#include <stdio.h>

int main() {
    int number = 10;
    int category = 2;

    switch (category) {
        case 1:
            if (number > 5 && number < 15) {
                printf("Category 1 and number is between 5 and 15.\n");
            } else {
                printf("Category 1 but number is not between 5 and 15.\n");
            }
            break;
        case 2:
            if (number > 5 && number < 15) {
                printf("Category 2 and number is between 5 and 15.\n");
            } else {
                printf("Category 2 but number is not between 5 and 15.\n");
            }
            break;
        default:
            printf("Unknown category.\n");
    }

    return 0;
}

●注意点と対処法

○switch-case文の注意点

switch-case文の注意点としては、各caseに到達した後、それ以降のcaseも実行されてしまう点が挙げられます。

これを防ぐためには、各caseの末尾にbreak文を入れて処理を中断させることが一般的です。

○複数条件の注意点

複数条件を設定する際の注意点として、条件の評価順序が重要になることがあります。

&&(AND)や||(OR)のような論理演算子を使用するとき、左側の条件から評価され、その結果次の条件を評価するかどうかが決まります。

●コードのカスタマイズ方法

○switch-case文のカスタマイズ例

switch-case文は、自分のプログラムに合わせてカスタマイズ可能です。

例えば、下記のコードでは、複数のcaseで同じ処理を行うようにしています。

#include <stdio.h>

int main() {
    int number = 2;

    switch (number) {
        case 1:
        case 2:
            printf("number is 1 or 2.\n");
            break;
        default:
            printf("number is not 1 or 2.\n");
    }

    return 0;
}

○複数条件のカスタマイズ例

複数条件の場合、条件の組み合わせを工夫することで様々

な条件分岐を作ることが可能です。

例えば、下記のコードでは、複数の条件を組み合わせています。

#include <stdio.h>

int main() {
    int number = 10;

    if (number > 5 && number < 15 || number == 20) {
        printf("number is between 5 and 15, or number is 20.\n");
    } else {
        printf("number is not in the specified range.\n");
    }

    return 0;
}

まとめ

この記事では、C言語のswitch-case文と複数条件の使い方について詳しく解説しました。

switch-case文は変数の値によって処理を分けるための強力なツールで、複数条件と組み合わせることで様々な条件分岐を表現できます。

コードの理解とカスタマイズを通じて、さらなるスキルアップを目指しましょう。