Java if文を省略(三項演算子?:)して記述する方法
Javaでif else文を省略(三項演算子?:)して記述する方法です。
if 文は条件分岐処理の一つで、条件が真か偽により処理を分岐します。プログラミングの基本で、最初に覚える文法と言っても過言ではないでしょうか。
if 文の基本形は、「if ( 条件式 ) { 真の場合の文 } else { 偽の場合の文 }」という記述の仕方になります。では、「if else 文を省略して記述する」とはどういう意味かというと、
「?(クエスチョンマーク) と :(コロン)」
を使って条件分岐を記述する方法のことを指します。これを三項演算子と言います。
ここでは Javaで三項演算子を使って記述する方法 を紹介します。
三項演算子でif else文を記述する基本構文
基本構文はこうです。
条件式 ? 真の場合の文 : 偽の場合の文
このように、if も else も書かずに条件分岐できます。注意しなければいけないのは、条件分岐の結果を変数やリテラルなどの"値"にする必要があることです。代入演算子を用いて値を変数に格納しましょう。
具体的なサンプルを書くとこうなります。
int price = 100;
boolean result = price > 100 ? true : false;
System.out.println(result);
String shop = (price == 100) ? "100円ショップ" : (price > 100) ? "スーパーマーケット" : "駄菓子屋";
System.out.println(shop);
「 条件式? 」 の部分が 「 if (条件式) 」に対応し、「 : 」 の部分が「 else 」に対応していることがわかりますね。
まとめ
この「? : 」を使った三項演算子、どんな場面で使うかといえば、個人的にはステップ数を減らして書きたい場合、つまり一行で書いてしまいたいという場合に使っています。
例えば、いくつかの条件で一つの文字列を作るといった仕様の場合などに、if else 文でダラダラ書くよりも、この方法でスマートに記述した方が可読性も上がります。
ただ、あまりにも複雑な条件式になるようなら使わないほうがいいでしょうね。可読性が低下してバグが増加しますし、この記述方法を知らない方もいるので、普通に if else 文を使う方がみんなが幸せになれます。
おつかれさまでした。