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

C# switch 文をマスターする:構文、例、ベストプラクティス

C# switch 文

複雑な if-else チェーンを、クリーンで読みやすい C# の switch 文に置き換える方法を、実践的な例とともに学習します。

switch 文は、単一の式を評価し、一致する case ブロックを実行することで意思決定を簡素化します。長い if-else 階段と比較して、switch 構文はより簡潔で保守しやすくなります。

基本構造は以下の通りです:

switch (variableOrExpression) {
    case value1:
        // value1 のコード
        break;
    case value2:
        // value2 のコード
        break;
    // …
    default:
        // いずれの case も一致しないときのコード
}

式が case と一致すると、対応するブロックが break に達するまで実行され、switch を終了します。一致する case がない場合は default ブロックが実行され、else 節を模倣します。

break がないと、実行が後続の case に「フォールスルー」し、しばしばバグの原因となります。C# break 文 の詳細については公式ドキュメントを参照してください。


例 1:母音の判定

using System;
namespace Conditional {
    class SwitchCase {
        public static void Main(string[] args) {
            char ch;
            Console.WriteLine("Enter an alphabet");
            ch = Convert.ToChar(Console.ReadLine());
            switch(Char.ToLower(ch)) {
                case 'a':
                    Console.WriteLine("Vowel");
                    break;
                case 'e':
                    Console.WriteLine("Vowel");
                    break;
                case 'i':
                    Console.WriteLine("Vowel");
                    break;
                case 'o':
                    Console.WriteLine("Vowel");
                    break;
                case 'u':
                    Console.WriteLine("Vowel");
                    break;
                default:
                    Console.WriteLine("Not a vowel");
                    break;
            }
        }
    }
}

実行結果:

Enter an alphabet X
Not a vowel

ユーザー入力が小文字に変換され、母音の case と照合されます。母音に一致しない場合はデフォルトメッセージが表示されます。

すべての母音 case が同じアクションを実行するため、グループ化できます:


例 2:グループ化された case

using System;
namespace Conditional {
    class SwitchCase {
        public static void Main(string[] args) {
            char ch;
            Console.WriteLine("Enter an alphabet");
            ch = Convert.ToChar(Console.ReadLine());
            switch(Char.ToLower(ch)) {
                case 'a':
                case 'e':
                case 'i':
                case 'o':
                case 'u':
                    Console.WriteLine("Vowel");
                    break;
                default:
                    Console.WriteLine("Not a vowel");
                    break;
            }
        }
    }
}

出力は同一ですが、コードがよりクリーンになります。

switch 文は特定のデータ型に限定されます:


例 3:シンプルな電卓

using System;
namespace Conditional {
    class SwitchCase {
        public static void Main(string[] args) {
            char op;
            double first, second, result;
            Console.Write("Enter first number: ");
            first = Convert.ToDouble(Console.ReadLine());
            Console.Write("Enter second number: ");
            second = Convert.ToDouble(Console.ReadLine());
            Console.Write("Enter operator (+, -, *, /): ");
            op = (char)Console.Read();
            switch(op) {
                case '+':
                    result = first + second;
                    Console.WriteLine("{0} + {1} = {2}", first, second, result);
                    break;
                case '-':
                    result = first - second;
                    Console.WriteLine("{0} - {1} = {2}", first, second, result);
                    break;
                case '*':
                    result = first * second;
                    Console.WriteLine("{0} * {1} = {2}", first, second, result);
                    break;
                case '/':
                    result = first / second;
                    Console.WriteLine("{0} / {1} = {2}", first, second, result);
                    break;
                default:
                    Console.WriteLine("Invalid Operator");
                    break;
            }
        }
    }
}

実行例:

Enter first number: -13.11
Enter second number: 2.41
Enter operator (+, -, *, /): *
-13.11 * 2.41 = -31.5951

この電卓は 2 つのオペランドと演算子を受け取り、switch を使用して要求された操作を実行します。入力は ReadLine() と Read() で読み取ります。入出力の詳細については C# 基本入出力 を参照してください。

if-else チェーンで置き換えることも可能ですが、離散的な値に対しては switch の方が意図が明確で実行も高速です。

C言語

  1. スイッチ付き回路:基本電気回路の実践ガイド
  2. 整流ダイオード実験:ネオンランプで誘導キックバックを抑制
  3. 電気スイッチの理解:タイプ、機能、応用
  4. メカニカルスイッチのチャタリング除去
  5. マルチメーター:アナログからデジタルまで包括ガイド
  6. C# break 文:使い方とタイミングを徹底解説
  7. C# continue 文をマスターする:ループ反復を効果的にスキップする方法
  8. C++ break文完全ガイド:ループ脱出の仕組みと実例
  9. C++ switch文をマスター:構文、使い方、実践例
  10. C言語の基本構文マスター:トークン、構造、セミコロン
  11. Python pass文完全マスター: 実践ガイド