【Java】三項演算子の基本をやさしく解説|if文との違いを実務目線で整理

Java入門・実践
スポンサーリンク
スポンサーリンク

はじめに

Java を学び始めるとよく見かけるのが
「三項演算子(条件演算子)」

条件式 ? 値1 : 値2

という独特の書き方で、
「if 文の短い版」と思われがちですが、
実は評価の仕組みや注意点を知っておくと
ぐっと読みやすく、安全に使えるようになります。

この記事では、やさしく・実務寄りに
三項演算子の基本を整理していきます。


まずはコードを確認

Java
int score = 75;

String result = (score >= 70) ? "合格" : "不合格";
System.out.println(result); // 合格

int a = 10;
int b = 20;
int max = (a > b) ? a : b;
System.out.println(max); // 20

コードのしくみを解説

三項演算子の基本形

条件式 ? 値1 : 値2
  • 条件式が true → 値1
  • 条件式が false → 値2

というルールです。

if 文を1行にまとめたイメージ

Java
String result;
if (score >= 70) {
    result = "合格";
} else {
    result = "不合格";
}

これを三項演算子で書くと:

Java
String result = (score >= 70) ? "合格" : "不合格";

スッキリします。

三項演算子は「式」なので値を返す

if 文は「文」ですが、
三項演算子は「式」なので 値を返します

そのため、代入式の中で使えます。

Java
int max = (a > b) ? a : b;

あわせて知っておきたいポイント

値1 と 値2 は「同じ型」になるようにする

Java
int x = true ? 10 : 20; // OK
int y = true ? 10 : "abc"; // NG(型が違う)

三項演算子は「どちらの値が返っても同じ型になる」必要があります。

ネストすると読みにくくなる

Java
String result = (score > 80) ? "A" : (score > 60) ? "B" : "C";

書けるけど、読みづらいです。

実務では if 文に戻した方が読みやすい ことが多いです。

条件式が複雑なときは使わない方が安全

Java
String msg = (flag && value != null && value.length() > 0) ? "OK" : "NG";

短く書けても、
「何を判定しているのか」が見えにくくなります。


使うときに気をつけたいこと

  • 読みやすさを優先する(無理に使わない)
  • 値1・値2 の型を揃える
  • ネストしない(if 文に戻す)
  • 条件式が複雑なら三項演算子は避ける

実務では「短く書ける」よりも 「読みやすい」ことが大切です。


まとめ

三項演算子の基本

  • 条件式 ? 値1 : 値2
  • true → 値1、false → 値2
  • if 文を1行にしたイメージ
  • 値を返す「式」

実務でのポイント

  • 読みやすさを優先
  • ネストしない
  • 型を揃える

decopon
decopon

三項演算子は、 「if 文を短く書ける便利な道具」ですが、 読みやすさとのバランスが大切です。シンプルな条件ならとても便利。 複雑になりそうなら if 文に戻す。 この感覚があるだけで、コードがぐっと整います。あなたの学びが、次のステップにつながりますように。

moco
moco

条件式 ? 値1 : 値2
この形が“値を返す式”なんだって。
シンプルに使うと、とっても便利だよ。

コメント

タイトルとURLをコピーしました