プログラムでは「条件によって処理を切り替える」ことが欠かせません。C# では代表的な条件分岐の構文として if
文と switch
文があります。if
は柔軟な条件式に対応し、switch
は複数の選択肢を整理して書きたいときに便利です。本記事ではそれぞれの書き方と使い分けを解説します。
if文の基本
if
文は「もし条件が true ならこの処理をする」という構文です。条件式は bool
値(true または false)に評価される式を記述します。
int score = 85;
if (score >= 80)
{
Console.WriteLine("合格です");
}
if-else文で二択に分岐する
条件が満たされない場合に別の処理をしたいときは else
を追加します。
int score = 65;
if (score >= 80)
{
Console.WriteLine("合格です");
}
else
{
Console.WriteLine("不合格です");
}
else ifで条件を追加する
三段階以上の条件分けをする場合は else if
を使います。
int score = 75;
if (score >= 90)
{
Console.WriteLine("優秀です");
}
else if (score >= 70)
{
Console.WriteLine("合格です");
}
else
{
Console.WriteLine("不合格です");
}
switch文の基本
switch
文は、値に応じて複数の選択肢から処理を分けたいときに使います。可読性が高く、整数や文字列の分岐に適しています。
string grade = "B";
switch (grade)
{
case "A":
Console.WriteLine("優秀です");
break;
case "B":
Console.WriteLine("良いです");
break;
case "C":
Console.WriteLine("合格です");
break;
default:
Console.WriteLine("不合格です");
break;
}
break
を忘れると後続のケースに処理が流れるため、原則として各ケースの末尾に書きます。
複数のケースをまとめる
同じ処理を複数のケースで共有したいときは、case
を並べます。
int day = 6;
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
Console.WriteLine("平日です");
break;
case 6:
case 7:
Console.WriteLine("週末です");
break;
default:
Console.WriteLine("不正な値です");
break;
}
switch式(C# 8.0以降)
C# 8.0 以降では switch
を式として使える「switch式」が導入され、より簡潔に書けます。
string grade = "B";
string result = grade switch
{
"A" => "優秀です",
"B" => "良いです",
"C" => "合格です",
_ => "不合格です"
};
Console.WriteLine(result);
まとめ|ifとswitchの使い分け
if
文と switch
文はどちらも条件分岐を記述できますが、適した場面が異なります。
- if文: 不等号や複雑な条件式に強い
- switch文: 値ごとに処理を分ける場合に見やすく整理できる
- switch式: 短くシンプルに結果を返したいときに便利
使い分けを意識すると、コードの読みやすさと保守性が大きく向上します。