MENU

C# switch-case文の使い方

C#でプログラミングをしていると、複数の条件に基づいて処理を分岐させたい場面がよくあります。例えば、ユーザーの入力に応じて異なる操作を行ったり、曜日ごとに異なるメッセージを表示したりする場合などです。こういった状況で便利なのが「switch-case文」です。この記事では、C#におけるswitch-case文の基本的な使い方から応用まで、初心者の方にも分かりやすく解説します。

目次

switch-case文の基本構造

switch-case文は、ある変数の値に応じて異なる処理を実行するための制御構造です。基本的な構造は以下のようになります:

switch (変数)
{
    case 値1:
        // 値1の場合の処理
        break;
    case 値2:
        // 値2の場合の処理
        break;
    // ... 他のケース
    default:
        // どのケースにも当てはまらない場合の処理
        break;
}

それでは、具体的な例を見てみましょう。

using System;

class Program
{
    static void Main()
    {
        Console.Write("1から3の数字を入力してください: ");
        string input = Console.ReadLine();

        switch (input)
        {
            case "1":
                Console.WriteLine("1を選択しました。");
                break;
            case "2":
                Console.WriteLine("2を選択しました。");
                break;
            case "3":
                Console.WriteLine("3を選択しました。");
                break;
            default:
                Console.WriteLine("1から3以外の値が入力されました。");
                break;
        }
    }
}

このプログラムでは、ユーザーが入力した数字に応じて異なるメッセージを表示します。defaultケースは、指定されたケース以外の値が入力された場合に実行されます。

break文の重要性

caseブロックの最後にbreak文を入れることは非常に重要です。break文がないと、次のcaseの処理も続けて実行されてしまいます。これを「フォールスルー」と呼びます。

ただし、C# 8.0以降では、break文を省略してフォールスルーを防ぐ新しい構文も導入されています:

switch (変数)
{
    case 値1:
        // 処理
        return; // またはthrow
    case 値2:
        // 処理
        return; // またはthrow
    // ...
}

複数の条件を1つのcaseにまとめる

同じ処理を行う複数のケースがある場合、以下のようにまとめることができます:

Console.Write("好きな果物を入力してください: ");
string fruit = Console.ReadLine().ToLower();

switch (fruit)
{
    case "りんご":
    case "バナナ":
    case "オレンジ":
        Console.WriteLine("フルーツが好きなんですね!");
        break;
    case "トマト":
    case "きゅうり":
        Console.WriteLine("野菜が好きなんですね!");
        break;
    default:
        Console.WriteLine("その他の食べ物が好きなんですね!");
        break;
}

パターンマッチングを使用したswitch文

C# 7.0以降では、switch文でパターンマッチングを使用できるようになりました。これにより、型や条件に基づいて分岐することが可能になります:

object obj = 42;

switch (obj)
{
    case int i when i > 0:
        Console.WriteLine($"正の整数: {i}");
        break;
    case int i:
        Console.WriteLine($"0または負の整数: {i}");
        break;
    case string s:
        Console.WriteLine($"文字列: {s}");
        break;
    default:
        Console.WriteLine("その他の型");
        break;
}

このExample、objの型と値に応じて異なる処理を行っています。

まとめ

switch-case文は、複数の条件に基づいて処理を分岐させる強力なツールです。基本的な使い方は簡単ですが、複数のケースをまとめたり、パターンマッチングを使用したりすることで、より柔軟で読みやすいコードを書くことができます。

初心者の方は、まずは単純な値の比較から始めて、徐々に複雑な条件分岐に挑戦してみるとよいでしょう。switch-case文をマスターすることで、C#プログラミングの幅が大きく広がります。実際のプロジェクトで積極的に活用してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次