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#のラムダ式と条件分岐を組み合わせることで、 「何を判断しているコードなのか」が一目で分かるようになります。
まとめ
C#のラムダ式と条件分岐のポイントを振り返る
今回は、C#におけるラムダ式と条件分岐の使い方について、初心者でも理解できるように基礎から丁寧に解説してきました。 ラムダ式は、一見すると難しそうに見えるかもしれませんが、その本質は「処理を短く書くための便利な書き方」です。 特に条件分岐と組み合わせることで、コードの見通しが良くなり、プログラム全体の可読性が大きく向上します。
通常のif文を使った条件分岐は、処理の流れを明確にするために非常に重要ですが、 短い処理であればラムダ式と三項演算子を使うことで、より簡潔に書くことができます。 例えば、「条件 ? 真の場合 : 偽の場合」という形は、シンプルでありながら強力な表現方法です。
また、ラムダ式の中でブロック構文を使えば、通常のif文と同じように複雑な条件分岐も記述できます。 これにより、単純な条件だけでなく、複数の条件や処理を含むロジックにも対応可能です。 つまり、ラムダ式は短い処理専用ではなく、状況に応じて柔軟に使い分けることができるのです。
実務で役立つラムダ式の使いどころ
実際の開発現場では、ラムダ式はコレクション操作や条件判定など、さまざまな場面で活用されます。 特にLINQと組み合わせることで、データの抽出やフィルタリングを直感的に書けるようになります。 条件分岐をラムダ式で表現することで、「何をしたいのか」が一目で分かるコードになります。
例えば、リストの中から特定の条件に合うデータだけを取り出す場合、 ラムダ式を使うことで余計なメソッドを定義せずに処理を完結できます。 これはコード量の削減だけでなく、保守性の向上にもつながります。
サンプルプログラムで理解を深める
using System;
class Program
{
static void Main()
{
Func<int, string> judge = x =>
{
if (x >= 100)
{
return "100以上です";
}
else if (x >= 50)
{
return "50以上100未満です";
}
else
{
return "50未満です";
}
};
Console.WriteLine(judge(120));
Console.WriteLine(judge(75));
Console.WriteLine(judge(30));
}
}
100以上です
50以上100未満です
50未満です
このように、ラムダ式の中にif文を記述することで、複数の条件分岐を柔軟に表現できます。 三項演算子だけでは表現しきれない場合でも、この方法を使えば問題なく対応できます。
初心者が意識しておきたいポイント
初めてラムダ式を学ぶ方は、まずはシンプルな三項演算子から始めることをおすすめします。 いきなり複雑な処理を書こうとすると、かえって分かりにくくなってしまいます。 「短く書けるから必ず使う」のではなく、「分かりやすくなる場面で使う」という意識が大切です。
また、コードの可読性を最優先に考えることも重要です。 他の人が見ても理解しやすいコードを書くことが、良いプログラミングの第一歩です。 ラムダ式は便利な機能ですが、使いすぎると逆に読みにくくなることもあるため、適切なバランスが求められます。
生徒
「ラムダ式って最初は難しそうでしたけど、条件分岐も普通に書けるんですね」
先生
「そうですね。基本はif文と同じ考え方なので、違いは書き方だけなんです」
生徒
「三項演算子を使うとすごく短く書けるのが便利だと思いました」
先生
「その通りです。ただし、短くしすぎて読みにくくならないように注意しましょう」
生徒
「なるほど。簡単なときは三項演算子、複雑なときはif文という使い分けですね」
先生
「とても良い理解です。その判断ができるようになると、コードの質がぐっと上がりますよ」
生徒
「これからはラムダ式も積極的に使ってみます」
先生
「ぜひ実際に書いて慣れていきましょう。繰り返し使うことで自然に身につきます」