English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# Switch 文

3つの条件以上をテストする必要がある場合、switch文を使用してif-else文を代用することができます。ここでは、switch文とそれがC#プログラムでどのように効果的に使用されるかについて学びます。

以下はswitch文の一般的な文法です。

 文法:

switch(match expression/variable)
{
    case constant-value:
        //を実行する文;
        break;
    default: 
        //を実行する文;
        break;
}

switch文はswitchキーワードで始まり、そのキーワードは一致する表現または括弧switch(一致する表現match expression)内の変数を含みます。この一致する表現または変数の結果は、大括弧{}内で指定されたcase条件に基づいてテストされます。caseはユニークな定数値で指定され、コロン:で終わります。各状況は実行するべき一つまたは複数の文を含みます。定数値と一致する表現/変数の値が一致すればcaseを実行します。switch文はオプションのデフォルトタグも含むことができます。caseが実行されない場合、デフォルトタグを実行します。break、returnまたはgotoキーワードはswitch状況からプログラムコントロールを退出するために使用されます。

以下の例はシンプルなswitch文を示しています。

int x = 10;
switch (x
{ 
    case 5:
        Console.WriteLine("xの値は"5");
        break;
    case 10:
        Console.WriteLine("xの値は"10");
        break;
    case 15:
        Console.WriteLine("xの値は"15");
        break;
    default:
        Console.WriteLine("未知の値");
        break;
}
出力:
の値です。10

上記では、switch(x)文は変数xを含んでおり、その値は各caseの の値と一致します。上記のswitch文は定数値を含んでいます。5、10および15の3つの状況を含みます。また、switchの値と一致しない場合に対応するdefaultタグも含まれています。 変数/表現が一致し、そのタグを実行します。各caseは:の後から始まり、実行するべき文を含みます。Xの値は第2種の値と一致します。10: 一致し、したがって出力値はxの値が10

switch文は、char、string、bool、intまたはenumの返値型が非空の表現を含むことができます。

switch文はまた、実行時に各caseに対してテストされる表現を含むことができます。

int x = 125;
switch (x % 2)
{ 
    case 0:
        Console.WriteLine($"{x} が偶数");
        break;
    case 1:
        Console.WriteLine($"{x} は奇数");
        break;
}
出力:
125は奇数

Switch Case

Switch Caseはユニークな定数値でなければなりません。bool、char、string、integer、enumまたは対応するnullの可能なタイプができます。

注意

C#において 7。0以降、switch caseは非ユニークな値を含むことができます。この場合、最初に一致するcaseを実行します。

考虑以下简单的switch文示例。

string statementType = "switch";
switch (statementType)
{
    case "if.else":
        Console.WriteLine("if...else文");
        break;
    case "ternary":
        Console.WriteLine("三項演算子");
        break;
    case "switch":
        Console.WriteLine("switch文");
        break;
}
出力:
switch文

同じ文を実行するために複数のcaseを組み合わせることができます。

int x = 5;
switch (x
{ 
    case 1:
        Console.WriteLine("x = 1");
        break;
    case 2:
        Console.WriteLine("x = 2");
        break;
    case 4:
    case 5:
        Console.WriteLine("x = 4 または x = 5");
        break;
    default:
        Console.WriteLine("x > 5");
        break;
}

各caseは、break、return、goto文、または他の方法で明示的に退出する必要があります。これにより、プログラムコントロールがcaseから退出し、デフォルトのcaseに入ることはありません。

以下では return キーワードを使用しています。

static void Main(string[] args)
{
    int x = 125;
    Console.Write( isOdd(x)? "偶数値" : "奇数値");
}
static bool isOdd(int i, int j)
{
    switch (x % 2)
    { 
        case 0:
            return true;
        case 1:
            return false;
        default:
            return false;
    }
    
    return false;
}
出力:
奇数値

break、return、goto文または同じ定数値を持つswitch caseがない場合、コンパイル時エラーが発生します。

int x = 1;
switch (x
{ 
    case 0:
        Console.WriteLine($"{x} is even value");
        break;
    case 1:
        Console.WriteLine($"{x} is odd Value");
        break;
    case 1: // エラー-コントロールは、(「 case 1:”)別の case タグに移動
        Console.WriteLine($"{x} is odd Value");
    defaut:
        Console.WriteLine($"{x} is odd Value");
        break;
}

ネストされたswitch文

switch文は別のswitch文の中で使用できます。

int j = 5;
switch (j
{
    case 5:
        Console.WriteLine(5);
        switch (j - 1)
        {
            case 4:
            Console.WriteLine(4);
            switch (j - 2)
            {
                case 3:
                Console.WriteLine(3);
                break;
            }
            break;
        }
        break;
    case 10:
        Console.WriteLine(10);
        break;
    case 15:
        Console.WriteLine(15);
        break;
    default:
        Console.WriteLine(100);
        break;
}
出力:
5 
4 
3
 覚えておくべきポイント:
  1. switch 文は if else 文の代替手段です。

  2. switch 文は指定された case に一致する一連の定数をテストするに従ってマッチングします。/変数。

  3. switch case を終了するには、break、return、goto キーワードを含む必要があります。

  4. switch にはオプションの default タグを含むことができます。case が実行されない場合にこのタグを実行します。

  5. C# コンパイラは case に欠けている:、定数値のエラーを表示し、case を終了します。

  6. C#から7.0から、switch 条件には一意でない値を含むことができます。この場合、最初に一致するケースを実行します。