通常のif-else
文を一行で記述できる便利な方法です。
三項演算子を活用することで、コードの可読性と簡潔さが向上します。
三項演算子の基本構文
三項演算子の基本構文は以下の通りです:
condition ? trueExpression : falseExpression;
- condition: 評価される条件(真または偽の値を返す論理式)
- trueExpression: conditionが真の場合に評価される式
- falseExpression: conditionが偽の場合に評価される式
使用例
具体的な例を通じて三項演算子の使い方を見てみましょう。
int a = 10;
int b = 20;
// 最大値を求める
int max = a > b ? a : b;
System.out.println("最大値は: " + max);
上記のコードでは、a
とb
を比較して、a
が大きい場合はa
を、そうでない場合はb
をmax
に代入しています。if-else
文を使うと、以下のようになります:
int max;
if (a > b) {
max = a;
} else {
max = b;
}
System.out.println("最大値は: " + max);
ご覧の通り、三項演算子を使うことで、コードがよりシンプルになります。
実用的な例
三項演算子は、単純な条件判断だけでなく、より実用的なシナリオでも役立ちます。例えば、ユーザーの年齢に応じたメッセージを表示する場合:
int age = 18;
String message = age >= 18 ? "成人です" : "未成年です";
System.out.println(message);
この例では、age
が18以上であれば「成人です」を、そうでなければ「未成年です」をmessage
に代入しています。
注意点
三項演算子は便利ですが、以下の点に注意する必要があります:
- 可読性: 簡潔さゆえに、複雑な条件や長い式を含む場合、可読性が低下することがあります。そのような場合は
if-else
文を使用する方が良いでしょう。 - ネストの回避: 三項演算子をネスト(入れ子)にすると、コードが読みづらくなります。必要以上にネストするのは避けるべきです。
// 読みにくい例
String result = (x > 10) ? ((y < 5) ? "A" : "B") : "C";
このような場合、if-else
文を使った方がわかりやすくなります。
String result;
if (x > 10) {
if (y < 5) {
result = "A";
} else {
result = "B";
}
} else {
result = "C";
}
実務での失敗
三項演算子にて、boolean型に真偽入れる処理を書いたソースです。
int age = 18;
boolean over18 = age >= 18 ? true : false;
booleanには真偽値がいるので、冗長なコードになっていました。
修正後
int age = 18;
boolean over18 = age >= 18;
まとめ
使用頻度は高くないですが、使えると便利です。
三項演算子は、可読性を損なわないように注意し、
必要に応じてif-else
文と使い分けることが重要です。
コメント