0Pricing
Java Academy · レッスン

三項演算子

condition ? a : bを学びます。

「三項演算子」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。

三項演算子とは

三項演算子は、3つのオペランドを取る Java 唯一の演算子です。条件に基づいて2つの値から1つを選ぶ、簡潔な方法です。

形は次のとおりです。condition ? valueIfTrue : valueIfFalse

値を生成するため、代入したり、そのまま渡したりできます。

int age = 20;
String status = age >= 18 ? "adult" : "minor";

3つの部分

最初の部分は、boolean の条件です。? が条件と結果を区切ります。

条件が true の場合、式は : の前の部分として評価されます。false の場合は、: の後の部分として評価されます。

2つの分岐のうち、実際に評価されるのは1つだけです。

int score = 45;
String result = score >= 50 ? "pass" : "fail";

完全な実行例

数値に基づいてラベルを出力する完全なプログラムを見てみましょう。

n % 2 == 0 という条件によって、"even" と "odd" のどちらを使うかが決まります。

public class Main {
    public static void main(String[] args) {
        int n = 7;
        String parity = n % 2 == 0 ? "even" : "odd";
        System.out.println(parity);
    }
}

式であること

if 文とは異なり、三項演算子は式です。つまり、値を持ちます。

そのため、文では使えないメソッド呼び出し、戻り値、代入の中でも使用できます。

public class Main {
    public static void main(String[] args) {
        int a = 9, b = 4;
        System.out.println("Max is " + (a > b ? a : b));
    }
}

数値の選択

2つの分岐は、どちらも文字列である必要はありません。ここでは三項演算子で2つの int のうち大きい方を選びます。

結果は int なので、保存して再利用できます。

public class Main {
    public static void main(String[] args) {
        int x = 12, y = 30;
        int max = x > y ? x : y;
        System.out.println(max);
    }
}

両方の分岐に互換性のある型が必要

Java は式全体の型を把握する必要があるため、2つの分岐には互換性のある型が必要です。

一方の分岐が int で、もう一方が String の場合、コードはコンパイルできません。

両側には同じ種類の値を置くようにしましょう。

boolean ok = true;
// valid: both ints
int code = ok ? 200 : 404;
// invalid: int vs String would not compile

メソッドからの返却

三項演算子は return 文の中で特に便利です。4行の if/else を1行に置き換えられます。

以下のメソッドは、数値の絶対値を返します。

public class Main {
    static int abs(int n) {
        return n < 0 ? -n : n;
    }
    public static void main(String[] args) {
        System.out.println(abs(-8));
    }
}

出力での使用

三項演算子は、print の呼び出しの中に直接埋め込めます。

連結するときはかっこで囲み、+ でテキストをつなぐ前に ? と : がひとまとまりとして扱われるようにします。

public class Main {
    public static void main(String[] args) {
        int items = 0;
        System.out.println("Cart: " + (items == 0 ? "empty" : "has items"));
    }
}

あいさつの選択

よくある使い方は、2つのメッセージから1つを選ぶことです。

条件で boolean フラグを確認し、三項演算子で対応するあいさつ文を選びます。

public class Main {
    public static void main(String[] args) {
        boolean morning = true;
        String greet = morning ? "Good morning" : "Hello";
        System.out.println(greet);
    }
}

演算子の優先順位

三項演算子の優先順位は非常に低いため、その中の算術演算や比較が先に実行されます。

a + b > 10 ? "big" : "small" では、Java は a + b を計算し、それを比較してから分岐を選びます。

文字列連結の + と組み合わせる場合は、かっこを追加します。

int a = 6, b = 7;
String size = a + b > 10 ? "big" : "small";

入力に基づく代入

三項演算子は、1つの手順で変数を初期化するのに適しています。

ここでは、メンバーの場合は料金をゼロに設定し、それ以外の場合は定額に設定します。

public class Main {
    public static void main(String[] args) {
        boolean isMember = false;
        double fee = isMember ? 0.0 : 9.99;
        System.out.println(fee);
    }
}

クイックチェック

三項演算子の構文について理解度を確認しましょう。

まとめ

三項演算子 condition ? a : b は、Java における簡潔な3部分構成の条件式です。

値を返し、1つの分岐だけを評価し、両側に互換性のある型を必要とします。

2つの値のうち1つを、代入、返却、出力する場合にすっきり使えます。

よくある質問

「三項演算子」レッスンは無料ですか?

はい。「三項演算子」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。

「三項演算子」で何を学びますか?

condition ? a : bを学びます。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Java Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「三項演算子」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJava Academyレッスンでコードを書いて実行できますか?

はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 三項演算子
  2. 三項演算子のネスト
  3. 三項演算子とif/else
  4. 可読性を損なう落とし穴
← Java Academyに戻る