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

C の switch…case (C の Switch ステートメント) と例

C の Switch ステートメントとは

C の switch ステートメント 変数の値をテストし、それを複数のケースと比較します。ケースの一致が見つかると、その特定のケースに関連付けられたステートメントのブロックが実行されます。

スイッチのブロック内の各ケースには、識別子と呼ばれる異なる名前/番号があります。ユーザーによって提供された値は、一致が見つかるまで switch ブロック内のすべてのケースと比較されます。

ケースの一致が見つからない場合、デフォルトのステートメントが実行され、制御は switch ブロックから出ます。

このチュートリアルでは、次のことを学びます-

大文字と小文字の構文の切り替え

「C」プログラムで switch-case を実装する方法の一般的な構文は次のとおりです。

switch( expression )
{
	case value-1:
			Block-1;
			Break;
	case value-2:
			Block-2;
			Break;
	case value-n:
			Block-n;
			Break;
	default:
			Block-1;
			Break;
}
Statement-x;

Switch ステートメントのフローチャート

次の図は、switch ケースでケースがどのように選択されるかを示しています:

C での大文字と小文字の切り替えの例

次のプログラムは、スイッチの使用法を示しています:

#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

<オール>
  • 与えられたプログラムでは、変数 num を値 8 で初期化したと説明しました。
  • 変数 num に格納された値を比較し、一致したケースに関連付けられたステートメントのブロックを実行するために、switch 構文が使用されます。
  • このプログラムでは、変数 num に格納されている値が 8 であるため、switch は case-label が 8 であるケースを実行します。ケースの実行後、制御はスイッチから外れ、プログラムは次のコマンドで終了します。出力画面に値を出力することにより、成功した結果。
  • 変数 num の値を変更してみて、出力の変化に注目してください。

    たとえば、デフォルトの次のプログラムを考えてみます:

    #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");}}

    出力:

    Other programming language

    C でスイッチ ケースを操作する場合、複数のケースを一意のラベルでグループ化します。 switch ステートメントの最後で分岐するには、それぞれの場合に break ステートメントを導入する必要があります。

    オプションのデフォルトのケースは、他に一致がない場合に実行されます。

    次の switch ステートメントを検討します:

    #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");}}

    出力:

    Four, Five, or Six.

    C のネストされたスイッチ

    C では、外側のスイッチに内側のスイッチを埋め込むことができます。また、内部スイッチと外部スイッチのケース定数は、共通の値を持ち、競合することはありません。

    ユーザーが自分の ID を入力する次のプログラムを検討します。ID が有効な場合、パスワードを入力するように求められます。パスワードが正しい場合、プログラムはユーザーの名前を出力します。そうでない場合、プログラムは正しくないと出力します。パスワード。ID が存在しない場合、プログラムは間違った ID を出力します

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

    出力:

    Plese Enter Your ID:
     500
    Enter your password:
     000
    Welcome Dear Programmer
    

    <オール>
  • 与えられたプログラムでは、ID とパスワードの 2 つの初期化変数について説明しました
  • 変数 ID に入力された値を比較するために、外側の switch 構造が使用されます。一致したケースに関連付けられたステートメントのブロックを実行します (ID==500 の場合)。
  • 一致したケースでブロックステートメントが実行される場合、内部スイッチを使用して変数 password に入力された値が比較され、一致したケースにリンクされたステートメントが実行されます (password==000 の場合)。
  • それ以外の場合、switch ケースはデフォルトのケースをトリガーし、プログラムの概要に関する適切なテキストを出力します。
  • Switch ケースが必要な理由

    if-else ステートメントには、代替パスの数が増えるたびにプログラムの複雑さが増すという潜在的な問題が 1 つあります。プログラムで複数の if-else 構文を使用すると、プログラムが読みにくく、理解しにくくなる可能性があります。場合によっては、プログラムを書いた開発者を混乱させることさえあります.

    この問題の解決策は、switch ステートメントです。

    switch ステートメントのルール

    • 式は常に結果に対して実行される必要があります。
    • 大文字と小文字のラベルは定数で一意である必要があります。
    • 大文字と小文字のラベルはコロン ( :) で終わる必要があります。
    • それぞれの場合に break キーワードが存在する必要があります。
    • デフォルト ラベルは 1 つだけです。
    • 複数の switch ステートメントをネストできます。

    まとめ

    • スイッチは「C」の意思決定構造です。
    • 複数の決定が関係するプログラムでスイッチが使用されています。
    • スイッチには、実行可能なテスト式が含まれている必要があります。
    • 各ケースにはブレーク キーワードを含める必要があります。
    • 大文字と小文字のラベルは定数で一意でなければなりません。
    • デフォルトはオプションです。
    • 複数の switch ステートメントを互いに入れ子にすることができます。

    C言語

    1. スイッチ付き回路
    2. C# switch ステートメント
    3. C++ do…while ループと例
    4. C++ Switch Case ステートメントと EXAMPLE
    5. C++ ポインタと例
    6. C++ 演算子のオーバーロードと例
    7. C++ 関数とプログラム例
    8. 例を含む C# コレクションのチュートリアル
    9. Python Print() ステートメント:例を使用して印刷する方法
    10. 例を使用した Python 文字列 count()
    11. 例を使用した Python round() 関数