C# switch case の特徴と使い方(まとめ)

C# のswitch case文 はいくつかの特徴があります。C言語では可能なフォールスルー(caseを通り抜けて処理)ができないことや、条件に文字列が使用できることができるなどはよく知られています。

switch の条件に文字列を使用

switch (fruit)
{
    case "Apple":
        break;
    case "Banana":
        break;
    case "Chocolate":
        break;
    default:
        break;
}

ローカル変数を使用する場合は中かっこを使用

switch (fruit)
{
    case "Apple":
    {
        int count = 0;
        break;
    }
    case "Banana":
        break;
    case "Chocolate":
        break;
    default:
        break;
}

case ブロック内でのみ必要なローカル変数がある場合は中かっこを使用します。

default はどこに設置してもよい

switch (fruit)
{
    default:
    case "Apple":
        break;
    case "Banana":
        break;
    case "Chocolate":
        break;
}

default は必ずしも最後である必要はありません。

default や case は goto文のラベルとして使用できる

switch (fruit)
{
    case "Apple":
        goto case "Chocolate";
    case "Banana":
        goto default;
    case "Chocolate":
        break;
    default:
        break;
}

C言語では可能だったフォールスルー(caseを通り抜けて処理)が必要な場合、このgoto文を上手く使用することで対応が可能になります。

使用環境: Visual Studio 2015 .NET Framework 4.5

C# メニューリスト