おすすめアイテムをいくつか紹介

広告ブロックがONになっていると表示されないことがあります。

【Java】三項演算子とは?if文との違いや使い分けを実際のコードをふまえて解説!

お疲れ様です。
はるさらと申します。

今回はJavaの三項演算子についてを記載していきます。

Javaを学び始めたばかりの方にとって、
「三項演算子(条件演算子)」という言葉は
聞き慣れないかもしれません。

三項演算子を使用しなくてもif文で事足りるため
覚えずに実装を進めている方もいますが、
現場によってはコードレビューで引っかかってしまうこともしばしば。。

ですがJavaでは、三項演算子(java 三項演算子 解説)を使うことで、
条件分岐をより簡潔に書くことができ、
コードをより効率的に書けるようになります。

この記事では、三項演算子の基本から、
if文との違い、ネスト構造の扱い
評価順序、ラムダ式との組み合わせ、
他言語との比較
まで、
実際のコードも交えながら解説していきます。

◆ 三項演算子とは?

三項演算子は、下記の様に
if-else文を1行で書ける便利な構文です。

条件式 ? 真の処理 : 偽の処理;

実際にソースに起こしてみると

int score = 80;
String result = (score >= 60) ? “合格” : “不合格”;
System.out.println(result); // 合格

これをif文で書くと以下の様になります。

String result;
int score = 80;
if (score >= 60) {
result = “合格”;
} else {
result = “不合格”;
}
System.out.println(result); // 合格

同じ処理でも、
三項演算子の方が1行で書けてスッキリします。

◆ 三項演算子の評価順序について

三項演算子は次の順番で評価されます。

1. まず条件式が評価される
2. 条件が true なら ? の右側(真)の値が返る
3. 条件が false なら : の右側(偽)の値が返る

このため、不要な処理は評価されないという
「短絡評価」的な動作も備えています。

boolean isDebug = false;
String result = isDebug ? getDebugLog() : “ログ省略”;

public static String getDebugLog() {
System.out.println(“ログ取得処理が呼ばれました”);
return “詳細ログ”;
}

isDebug = false の場合、
getDebugLog() は呼ばれません。

◆ ネストした三項演算子(入れ子構造)の使い方

条件が複数ある場合、
三項演算子をネスト(入れ子)
することもできます。

ただし、読みづらくなるので注意が必要です。

int score = 75;
String grade = (score >= 80) ? “A” :
(score >= 60) ? “B” :
“C”;
System.out.println(“成績: ” + grade);

改行やインデントを使うと、
見やすさがグッと上がります。

◆ Java 8以降での応用:ラムダ式と組み合わせる

Java 8以降で登場したラムダ式とも
三項演算子は相性が良いです。

boolean isDebugMode = true;

Runnable task = isDebugMode
? () -> System.out.println(“デバッグモードです”)
: () -> System.out.println(“通常モードです”);

task.run();

このように、条件によって異なる処理を選択し、
後で実行するパターンでも活用できます。

◆ 他言語との違い・共通点

三項演算子はJava以外の言語でも使われています。
たとえば:

【JavaScript】

let score = 70;
let result = (score >= 60) ? “Pass” : “Fail”;

【C言語】

int x = 10, y = 20;
int max = (x > y) ? x : y;

Javaと類似した構文なので、
他の言語に取り組む際にも役立ちます。

◆ まとめ

三項演算子は 条件 ? 真 : 偽 の形式で、
if文をコンパクトに書ける便利な構文となります。

簡単な条件分岐に使うと、コードがスッキリしますが、
逆に複雑な分岐に使用すると可読性は下がるため
注意が必要です。

ぜひ使いこなしてコードを
スマートに仕上げていきましょう!

どなたかのお役に立てば幸いです。
それではまたー!!

ABOUT US
harusara
はるさらと申します。現在はSIerとして働いており、このブログにIT系の備忘録を気ままに残しております。少しでも多くの方に役立てば幸いです♪ 連絡をいただける場合はサイドバーのお問い合わせかTwitterのDMよりお願いいたします。