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

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

コメント