工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C 言語 switch-case 文の理解: 構文、例、ベストプラクティス

C 言語の switch 文とは?

switch 構造は単一の式を評価し、一致する case ラベルにプログラムフローを転送します。一致するものがない場合、オプションの default ブロックが実行されます。この意思決定ツールは、メニューオプション、エラーコード、ユーザー選択などの離散的な定数値を扱う場合に特に有用です。

各 case は定数式によって一意に識別されます。式の値が case ラベルと一致すると、対応する文ブロックが実行され、switch を抜けます (break が省略されている場合はフォールスルーが発生し、後続の case に実行が継続されます)。

switch-case 構文

switch (expression) {
    case constant1:
        // 文
        break;
    case constant2:
        // 文
        break;
    // …
    default:
        // 文
        break;
}
// switch 以降の文

switch 文の動作

以下のフローチャートは switch 文の決定プロセスを示しています:

C 言語 switch-case 文の理解: 構文、例、ベストプラクティス

例 1: 基本的な switch

#include <stdio.h>
int main() {
    int num = 8;
    switch (num) {
        case 7:
            printf("Value is 7");
            break;
        case 8:
            printf("Value is 8");
            break;
        case 9:
            printf("Value is 9");
            break;
        default:
            printf("Out of range");
            break;
    }
    return 0;
}

出力:

Value is 8

例 2: default の使用

#include <stdio.h>
int main() {
    int language = 10;
    switch (language) {
        case 1:
            printf("C#\n");
            break;
        case 2:
            printf("C\n");
            break;
        case 3:
            printf("C++\n");
            break;
        default:
            printf("Other programming language\n");
    }
    return 0;
}

出力:

Other programming language

例 3: case の結合

#include <stdio.h>
int main() {
    int number = 5;
    switch (number) {
        case 1:
        case 2:
        case 3:
            printf("One, Two, or Three.\n");
            break;
        case 4:
        case 5:
        case 6:
            printf("Four, Five, or Six.\n");
            break;
        default:
            printf("Greater than Six.\n");
    }
    return 0;
}

出力:

Four, Five, or Six.

ネストした switch

switch はネスト可能で、階層的な意思決定を実現できます。以下はシンプルな認証フローの例です:

#include <stdio.h>
int main() {
    int ID, password;
    printf("Please Enter Your ID:\n");
    scanf("%d", &ID);
    switch (ID) {
        case 500:
            printf("Enter your password:\n");
            scanf("%d", &password);
            switch (password) {
                case 0:
                    printf("Welcome Dear Programmer\n");
                    break;
                default:
                    printf("Incorrect password\n");
            }
            break;
        default:
            printf("Incorrect ID\n");
    }
    return 0;
}

出力:

Please Enter Your ID:
500
Enter your password:
000
Welcome Dear Programmer
C 言語 switch-case 文の理解: 構文、例、ベストプラクティス

switch が長い if-else より優れている理由

if-else チェーンでも同じロジックを実現できますが、選択肢が増えると扱いにくくなります。switch 文はより明確な構文、優れた可読性を提供し、コンパイラによって定数式のジャンプテーブルに最適化される可能性があります。

switch 使用のルール

重要なポイント

C言語

  1. スイッチ付き回路:基本電気回路の実践ガイド
  2. C# switch 文をマスターする:構文、例、ベストプラクティス
  3. C++ do-while文:構文、実践例、ネストしたループ
  4. C++ switch文をマスター:構文、使い方、実践例
  5. C++ポインタをマスター:概念、例、実践的応用
  6. C++演算子オーバーロード:コード例付き実践ガイド
  7. C++関数を実例で徹底解説:基本から応用まで
  8. C#コレクション実践チュートリアル:実例で学ぶ柔軟なデータ管理
  9. Python print()関数の実践ガイド:基本から応用まで
  10. Python str.count()マスター:文字と部分文字列のカウント実例集
  11. Python round()関数を実例で徹底解説