カテゴリ: C# 更新日: 2026/01/11

C#でswitch式を使う方法!C# 8.0以降の新機能を解説

C#でswitch式を使う方法!C# 8.0以降の新機能を解説
C#でswitch式を使う方法!C# 8.0以降の新機能を解説

先生と生徒の会話形式で理解しよう

生徒

「C#でたくさんの条件を分けるときに、if文ばかりだと読みにくい気がします。」

先生

「それなら、C# 8.0から使えるswitch式を試してみるといいですよ。」

生徒

「switch文じゃなくて、switch式?何が違うんですか?」

先生

「switch式は、値を返すことができる新しい書き方です。読みやすくて、コードもすっきりしますよ。」

1. switch式とは?

1. switch式とは?
1. switch式とは?

switch式(スイッチしき)は、C# 8.0から導入された新しい文法で、「条件分岐をしながら、その結果となる値を1つ返す」ための書き方です。従来のswitch文は「どの処理を実行するか」を決めるためのものでしたが、switch式は式(expression)として値を返すことができるのが大きな違いです。

少しイメージしやすくすると、「もし1なら『一です』、2なら『二です』、それ以外なら『それ以外です』という文章を用意しておいて、状況に応じてその中から1つを選んで取り出す仕組み」がswitch式です。選ばれた結果は、そのまま変数の代入に使えるため、C#のコードをより短く・簡潔に書けるのが特徴です。


int number = 1;

string text = number switch
{
    1 => "一です",
    2 => "二です",
    _ => "それ以外です"
};

Console.WriteLine(text);

一です

このサンプルでは、numberの値に応じて、textという文字列が自動的に決まります。1なら「一です」、2なら「二です」、それ以外の数字なら「それ以外です」という文字列が選ばれ、最後にConsole.WriteLineで表示されています。

このように、switch式は「条件に応じてどの値を使うか」をすっきり書けるので、C#でたくさんの条件分岐を書くときでも、コードの見通しが良くなります。特に、同じような条件分岐をいくつも書く場面では、switch式を使うことで、読みやすく保守しやすいC#コードにしやすくなります。

2. 従来のswitch文との違い

2. 従来のswitch文との違い
2. 従来のswitch文との違い

まずは、従来のswitch文の例を見てみましょう。次のように、条件ごとに処理を分岐します。


int number = 2;
string result;

switch (number)
{
    case 1:
        result = "One";
        break;
    case 2:
        result = "Two";
        break;
    default:
        result = "Other";
        break;
}

Console.WriteLine(result);

Two

これに対して、switch式を使うと以下のようにもっとシンプルに書けます。


int number = 2;

string result = number switch
{
    1 => "One",
    2 => "Two",
    _ => "Other"
};

Console.WriteLine(result);

Two

このように、switch式は値を返すので、resultという変数に直接代入することができます。

3. switch式の基本構文

3. switch式の基本構文
3. switch式の基本構文

switch式の基本的な書き方は以下のようになります:


変数名 switch
{
    値1 => 結果1,
    値2 => 結果2,
    _   => デフォルト結果
};

この中で「=>(イコール大なり)」は、パターンマッチングの矢印と呼ばれます。「_」はどのパターンにも当てはまらない場合に使うデフォルト(その他)の指定です。

4. 実用例:曜日に応じたメッセージを表示

4. 実用例:曜日に応じたメッセージを表示
4. 実用例:曜日に応じたメッセージを表示

次のように、文字列にもswitch式は使えます。


string day = "土曜日";

string message = day switch
{
    "月曜日" => "1週間の始まりです。",
    "金曜日" => "もうすぐ週末ですね!",
    "土曜日" => "お休みを楽しんでください。",
    "日曜日" => "ゆっくり休んでください。",
    _ => "平日です。頑張りましょう!"
};

Console.WriteLine(message);

お休みを楽しんでください。

このように、条件ごとの結果をそのまま代入できるので、コードが非常に見やすくなります。

5. switch式のメリットと注意点

5. switch式のメリットと注意点
5. switch式のメリットと注意点

switch式には以下のようなメリットがあります:

  • コードがコンパクトで読みやすい
  • 変数への代入がスムーズにできる
  • パターンマッチングとの相性が良い

ただし、以下の注意点もあります:

  • C# 8.0以降でのみ使用可能(古い環境ではエラーになります)
  • すべてのパターンを網羅していないと、エラーになる場合があります(特に値の種類が多いとき)

6. 型に応じたswitch式(型パターン)

6. 型に応じたswitch式(型パターン)
6. 型に応じたswitch式(型パターン)

switch式は、型による条件分岐にも対応しています。例えば次のように、型ごとに処理を分けることができます。


object input = 123;

string result = input switch
{
    int n => $"整数です:{n}",
    string s => $"文字列です:{s}",
    _ => "未知の型です"
};

Console.WriteLine(result);

整数です:123

このような使い方を「型パターン」と呼び、入力された値の型に応じた処理を記述できます。

7. switch式はどこで使うと便利?

7. switch式はどこで使うと便利?
7. switch式はどこで使うと便利?

switch式は、以下のような場面でとても便利です。

  • 変数の値によって表示内容処理の種類を変えたいとき
  • enum(列挙型)の値に応じて処理を変えるとき
  • 複雑なif文をすっきりさせたいとき

特に、if文が多くて見づらくなっているコードを、switch式に置き換えると、コードの見通しがよくなり、バグも減らすことができます。

まとめ

まとめ
まとめ

C# 8.0で導入されたswitch式は、従来のswitch文に比べてとてもシンプルで柔軟な書き方ができる便利な機能です。従来のswitch文では、各パターンごとにbreakcaseを使って処理を分ける必要がありましたが、switch式ならそのまま値を返す形で書けるため、より見やすくコンパクトなコードを書くことができます。

特に、変数の値に応じた文字列や結果を代入したい場合や、型に応じて処理を分岐したい場合にswitch式は非常に有効です。条件が多くてif文が複雑になってしまうようなコードでも、switch式を使えば整理されて見通しが良くなります。

また、switch式は数値だけでなく文字列型(オブジェクト)にも対応しており、さまざまな場面で活用できます。ただし、C# 8.0以降のバージョンでしか使用できないため、使用環境には注意が必要です。

ここで、switch式の基本的な使い方を復習しておきましょう。

switch式の基本サンプルコード


int score = 85;

string grade = score switch
{
    >= 90 => "優秀",
    >= 70 => "合格",
    >= 50 => "再試験",
    _     => "不合格"
};

Console.WriteLine($"判定結果:{grade}");

判定結果:合格

この例では、switch式を使って点数に応じた評価を簡潔に書いています。if文に置き換えると冗長になりがちな処理も、switch式ならすっきり記述できます。

覚えておきたいポイント

  • switch式は値を返す新しい構文(C# 8.0以降)
  • =>(矢印)は結果を返す演算子
  • デフォルト値には_を使う
  • 文字列やオブジェクトにも使える
  • 型パターンを使うと型ごとの処理分岐ができる

今後、アプリケーションの開発や業務システムの実装で複雑な条件分岐が出てきたときに、switch式を使いこなせると保守性が高く、読みやすいコードを実現できます。新しい構文を恐れず、積極的に取り入れていくことで、プログラミングのスキルが一段と磨かれていきます。

先生と生徒の振り返り会話

生徒

「先生、switch式って最初は難しそうに見えたけど、書いてみたらすごく分かりやすかったです!」

先生

「その通りです。switch式は、条件ごとの結果をシンプルに書きたいときにぴったりですよ。」

生徒

「if文よりもスッキリしていて、パターンがたくさんあっても読みやすいですね!」

先生

「複雑な条件ほどswitch式の威力が発揮されます。特に型に応じた分岐や、文字列の処理に使うと便利ですよ。」

生徒

「型パターンの書き方も面白かったです。入力された値の種類で処理を変えるときに使えそうですね!」

先生

「そのとおり。今後の開発でswitch式をどんどん活用していけば、コードの質がどんどん良くなっていきますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

C#のswitch式とは何ですか?switch文との違いを初心者にも分かりやすく教えてください。

C#のswitch式は、C# 8.0で導入された新しい構文で、条件分岐を行いながら値を返すことができる書き方です。従来のswitch文は処理を実行するだけでしたが、switch式は代入や戻り値として使えるのが大きな違いです。
カテゴリの一覧へ
新着記事
New1
C#
C#のオブジェクト初期化子を完全ガイド!初心者でもわかる便利な使い方
New2
COBOL
COBOLの帳票出力と編集を完全マスター!条件付き表示で分かりやすい書類を作る方法
New3
COBOL
COBOLの帳票出力を完全攻略!数値項目のカンマ・小数点編集例を徹底解説
New4
C#
C#の配列とListの違いを比較して理解しよう
人気記事
No.1
Java&Spring記事人気No1
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#
C#でJSONファイルを読み書きする方法(JsonSerializer・Newtonsoft.Json)
No.3
Java&Spring記事人気No3
C#
C#のLINQクエリ構文の書き方と基本操作をマスターしよう
No.4
Java&Spring記事人気No4
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#のLINQ(リンク)とは?基本概念とデータ操作を初心者向けに徹底解説!
No.7
Java&Spring記事人気No7
C#
C#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決
No.8
Java&Spring記事人気No8
C#
C#のCancellationTokenを使ったキャンセル処理を完全ガイド!非同期処理を安全に止める方法