本文へスキップ
BecomeCoder

Java文法コース · 第3章 演算子 ― 値を計算し、比較し、組み合わせる · レッスン11

三項演算子 ― 条件によって値を出し分ける

ブラウザで完結

導入

「合格なら”合格”、そうでなければ”不合格”」のような、値そのものを条件で出し分けるだけの短い処理に、わざわざ if を書くのは大げさに感じることがあります。そんなときの三項演算子です。

説明

三項演算子は 条件 ? 値1 : 値2 の形で書きます。条件が true なら値1、false なら値2 になります。

public class Main {
    public static void main(String[] args) {
        int score = 72;
        String result = (score >= 60) ? "合格" : "不合格";
        System.out.println(result);

        int a = 5, b = 8;
        int max = (a > b) ? a : b;
        System.out.println(max);
    }
}
  • (score >= 60) ? "合格" : "不合格" … 条件 score >= 60true なら "合格"false なら "不合格" という式全体が1つの値になります。if/else と違って、こちらは値を作る式なので、そのまま変数への代入や println の引数に使えます。
  • 「?」の前が条件、「:」の前後がそれぞれ true のときの値/false のときの値、と覚えましょう。

やってみよう

下のエディタで score の値をいろいろ変えて、result がどう変わるか確かめましょう。ab を入れ替えて max の結果も確認してください。

演習

int temp = 15; を用意し、temp が25以上なら "暑い"、そうでなければ "涼しい"kind という変数に三項演算子で入れて表示してください(結果は 涼しい)。

ヒント1を見る

String kind = (temp >= 25) ? "暑い" : "涼しい"; と書きます。

ヒント2を見る

System.out.println(kind);

実際に動かしてみよう

下のエディタにJavaを書いて「実行」を押すと、学習用シミュレータが System.out.println の出力を表示します(本物のJVMではなく、教材の範囲を再現した軽量エンジンです)。クラス・継承・コレクションなども動きます。Scanner で入力を読む例は「標準入力」欄に値を入れてください。本文の例を書き換えて動かしてみましょう(Stream・ラムダ・スレッド・ファイル入出力など一部の機能は対象外です)。

Java — ブラウザ内で実行(学習用シミュレータ)

Javaの教材サブセットを動かす学習用シミュレータを読み込みます(本物のJVMではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。