#5 C#で学ぶ条件分岐の基本

C#の条件分岐は、Javaとよく似た書き方に加えて、簡潔に書けるいくつかの便利な機能が用意されています。この記事では、C#における条件分岐の基本と、新しい書き方を解説します。

if文の基本

int age = 20;
if (age >= 18) {
    Console.WriteLine("成人です");
} else {
    Console.WriteLine("未成年です");
}

複数の条件を順に確認する

if (age >= 65) {
    Console.WriteLine("高齢者です");
} else if (age >= 18) {
    Console.WriteLine("成人です");
} else {
    Console.WriteLine("未成年です");
}

switch文とswitch式

C#にもswitchがありますが、近年のC#では、より簡潔に書ける「switch式」という新しい書き方も使えます。

string result = score switch {
    >= 90 => "優",
    >= 70 => "良",
    _ => "可"
};

breakを書く必要がなく、1行で条件と結果の対応を表現できるのが特徴です。従来のswitch文が「処理を実行する」ものだったのに対し、switch式は「値を返す」という発想の違いも押さえておきましょう。

三項演算子

簡単な条件分岐であれば、三項演算子を使って1行で書くこともできます。

string message = age >= 18 ? "成人です" : "未成年です";

null条件演算子との組み合わせ

値がnullかもしれない変数を安全に扱うため、?.と??を条件分岐と組み合わせて使うこともよくあります。

string displayName = person?.Name ?? "ゲスト";

personがnullでなければNameを、nullなら"ゲスト"を使う、という処理を1行で書けます。

C#ならではの注意点

従来のswitch文と、新しい「switch式」は書き方が大きく異なります。学習中の教材が古いか新しいかによって説明されている書き方が違うことがあるので、混乱したら「switch文」と「switch式」のどちらの話をしているのか区別してみましょう。

パターンマッチングとの組み合わせ

switch式は、値の型に応じて分岐する「パターンマッチング」とも組み合わせられます。

string Describe(object obj) => obj switch {
    int n when n > 0 => "正の整数",
    int => "0以下の整数",
    string => "文字列",
    _ => "その他"
};

whenを使うと、型の判定に加えて追加の条件も指定できます。

まとめ

C#の条件分岐は基本のif・elseに加え、switch式や三項演算子、null条件演算子との組み合わせといった簡潔な書き方が充実しています。状況に応じて使い分けましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

C#をもっと学びたい方には「確かな力が身につくC#「超」入門 第2版」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本