C#のラムダ式で条件分岐を行う方法を完全ガイド!初心者でもわかる書き方と考え方
生徒
「C#のラムダ式って、短く書けるって聞いたんですけど、条件分岐もできるんですか?」
先生
「できますよ。if文と同じように、条件によって処理を変えることができます。」
生徒
「プログラミング未経験でも理解できますか?」
先生
「大丈夫です。まずは身近な例えから、ゆっくり説明していきましょう。」
1. ラムダ式とは何かをやさしく理解しよう
C#のラムダ式とは、「短い書き方で処理の内容を表現する方法」です。 難しく聞こえますが、イメージとしてはその場で使う小さな処理のメモのようなものです。 普通のメソッドは名前を付けて定義しますが、ラムダ式は名前を付けずに直接使えます。
たとえば、「数字を受け取って、結果を返す」という処理を、とても短く書けるのが特徴です。 この仕組みを使うと、条件分岐もシンプルに表現できるようになります。
2. 条件分岐とは?まずは考え方から
条件分岐とは、「もし○○だったらAをする。そうでなければBをする」という考え方です。 日常生活で言うと、「雨が降っていたら傘を持つ。降っていなければ持たない」という判断と同じです。
C#では通常、if文を使って条件分岐を書きますが、
ラムダ式の中でも同じ考え方で条件を扱うことができます。
3. ラムダ式でシンプルな条件分岐を書く方法
ラムダ式で条件分岐を行うときによく使われるのが、三項演算子です。 三項演算子とは、「条件 ? 真のとき : 偽のとき」という形で書く条件分岐の書き方です。
Func<int, string> checkNumber = x => x >= 0 ? "正の数または0です" : "負の数です";
Console.WriteLine(checkNumber(10));
Console.WriteLine(checkNumber(-5));
正の数または0です
負の数です
この例では、「数字が0以上かどうか」を条件にしています。
x >= 0 が条件で、条件が正しければ左の文字列、違えば右の文字列が使われます。
4. if文をラムダ式の中で使う方法
ラムダ式は短く書くことが多いですが、処理が少し長くなる場合は、 ブロック構文を使って、if文を書くこともできます。
Func<int, string> judgeScore = score =>
{
if (score >= 80)
{
return "とても良い点数です";
}
else
{
return "まだ伸びしろがあります";
}
};
Console.WriteLine(judgeScore(90));
Console.WriteLine(judgeScore(60));
とても良い点数です
まだ伸びしろがあります
このように、ラムダ式の中でも普通のif文と同じ感覚で条件分岐ができます。 「return」は「結果を返す」という意味で、ラムダ式の処理結果になります。
5. 身近な例で考えるラムダ式の条件分岐
プログラミング未経験の方は、「難しい計算」よりも「身近な判断」を例にすると理解しやすくなります。 たとえば、「年齢によって大人か子どもかを判断する」処理もラムダ式で書けます。
Func<int, string> checkAge = age => age >= 20 ? "大人です" : "未成年です";
Console.WriteLine(checkAge(25));
Console.WriteLine(checkAge(15));
大人です
未成年です
このように考えると、ラムダ式の条件分岐は「判断をそのままコードにしたもの」だと分かります。
6. ラムダ式で条件分岐を使うメリット
ラムダ式で条件分岐を書く最大のメリットは、コードが短く読みやすくなることです。 特に小さな判断処理では、メソッドを作らずにその場で書けるため、 プログラム全体の流れを追いやすくなります。
C#のラムダ式と条件分岐を組み合わせることで、 「何を判断しているコードなのか」が一目で分かるようになります。