読者です 読者をやめる 読者になる 読者になる

kyosho5’s blog

貧乏で数学があまり得意ではない理系出身のエンジニアのブログ

三項演算子を使うという選択

javaのおはなし。



ついこの前、javaのプログラミング問題を解いてる時に調べ物をしていたら、




三項演算子というのが便利だ、という記事を見かけた。




簡単な例として、

「もしint型のnumが0だったらtrueを返し、それ以外だったらfalseを返す」という処理を書くとする。




javaを学び始めた初期の私なら、真っ先に

	public boolean sampleMethod(int num) {
		if(num % 2 == 0) {
			return true;
		} else {
			return false;
		}
	}


今でも一番最初に思いつくのはこれだったりする。



しかし、少し勉強を進めていくとswitch文の書き方も選択肢として出てくる。
(最後のbreakは冗長ではあるが、現在参画しているとあるプロジェクトではコーデイング規約の中にbreakの記述が必須となっていた。
なんで無駄に行を増やすのか…)



	public boolean sampleMethod(int num) {
		switch(num) {
		case 0:
			return true;
			break;
		default:
			return false;
			break;
		}
	}


で、三項演算子だとこんな感じ。

	public boolean sampleMethod(int num) {
		return num == 0 ? true : false;
	}

なんと実際の処理は1行で書けてしまう。




意味としては、

return 条件 ? 条件が真のときの戻り値 : 条件が偽のときの戻り値;

である。



あまり複雑なコードの中にこれをガリガリ書いていくと可読性が落ちるという指摘もあるようだが、基本的には



全体のコード行数を減らしてスッキリさせるのに一役買ってくれそう。



ただし、あくまで戻り値は2パターンまでしか表現できないのでパターン数次第ではifかswitchを用いた方がいい場合もある。



ifもswitchも三項演算子も、それぞれのいい部分と悪い部分があるので場合に応じて使い分けられるようにしておきたい。