C#でよく使われる構文の一つに、三項演算子(?:)があります。コードを短く記述できる便利な機能ですが、使い方を誤ると可読性が下がってしまうこともあります。
この記事では、C#初心者向けに三項演算子の基本的な使い方と、よくある注意点について丁寧に解説します。備忘録としても活用できるよう、サンプルコードも掲載しています。
三項演算子とは?
三項演算子は、条件に応じて異なる値を返すことができる演算子です。
構文は次のとおりです:
条件式 ? 真の場合の値 : 偽の場合の値;
例:基本的な使い方
int score = 80;
string result = score >= 60 ? "合格" : "不合格";
Console.WriteLine(result); // 合格
この例では、score
が60以上かどうかを条件にして、「合格」か「不合格」を判定しています。
if文との違い
三項演算子は、値を返す式であり、代入や表示などの文の中に組み込むことができます。
同じ処理をif文で書くと次のようになります:
string result;
if (score >= 60)
{
result = "合格";
}
else
{
result = "不合格";
}
可読性の面ではif文が優れていますが、三項演算子は簡潔に書ける点がメリットです。
ネスト(入れ子)には注意
三項演算子を入れ子にすることも可能ですが、可読性が著しく下がるため注意が必要です。
string grade = score >= 80 ? "A" : score >= 60 ? "B" : "C";
このようなネストはif-else文で書き直したほうが無難です。
値の型に注意する
三項演算子の左右の値は、同じ型または互換性のある型である必要があります。
// エラーになる例
var result = true ? "OK" : 0; // stringとintで型が一致しない
適切なキャストを行うか、同じ型の値を返すようにしましょう。
三項演算子の主な用途
- 条件に応じたメッセージの表示
- UIでのラベルや色の切り替え
- ログやデバッグ出力の簡素化
- 単純な条件分岐を1行で書きたい場合
まとめ
C#の三項演算子(?:)は、コードを簡潔に保ちたいときに非常に便利な構文です。特に条件によって異なる値を代入・表示したい場面で活用できます。
ただし、ネストしすぎたり、型の不一致があると可読性や安全性を損なうこともあります。簡潔に書ける分、適切に使い分ける意識が大切です。
簡単な分岐であれば積極的に三項演算子を活用し、複雑なロジックにはif文を選ぶとよいでしょう。