Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaの三項演算子とは?基本構文と実践例をステップごとに解説

Javaの三項演算子(条件演算子)を使えば、if文をわずか1行のコードで表現できます。三項演算子は条件式が真(true)か偽(false)かを評価し、その結果に応じて指定した値を返します。


Javaでは通常、if...else文を使ってプログラムの流れを制御します。if文は式がtrueかfalseかを評価し、式がtrueの場合に特定のコードブロックを実行します。

しかし、if...else文は複数行にわたって記述する必要があります。単純な式を評価したいだけなのに、コードが不必要に長くなってしまうこともあるでしょう。そこで役立つのが三項演算子です。Javaの三項演算子は、単純なif...else文を置き換えて、コードを読みやすくするために使われます。

この記事では、Javaの三項演算子の使い方について解説します。実際の例を通して、この演算子の使い方を一緒に学んでいきましょう。

Javaの三項演算子とは

Javaの三項演算子を使うと、if...else文を簡潔に記述できます。「三項」という名前は、3つの要素(オペランド)を受け取ることに由来しています。三項演算子は条件式が真か偽かを評価し、その結果に応じて指定された値を返します。

Javaにおける三項演算子の基本構文は以下のとおりです。

variable = (expression) ? expressionIsTrue : expressionIsFalse;

「三項(ternary)」という名前の由来は、この演算子が3つの部分で構成されていることです。構文は次の3つのオペランドを受け取ります。

  • expression:演算子が評価する対象となる条件式
  • expressionIsTrue:条件式がtrueの場合にvariableへ代入される値
  • expressionIsFalse:条件式がfalseの場合にvariableへ代入される値

なお、三項演算子の結果を必ずしも変数に代入する必要はありません。たとえば、System.out.println()の中に直接三項演算子を書けば、その評価結果をコンソール上で手軽に確認することもできます。

また、if文とは異なり、三項演算子には「else」というキーワードは存在しません。代わりに、コロン(:)がelseの条件を表す役割を担っています。

それでは、実際の例でこの演算子の動作を確認してみましょう。

三項演算子の使用例

ここで、ショッピングサイトを構築していると仮定します。16歳以上のユーザーだけが商品を購入できるようにしたいと考えましょう。

顧客の年齢を確認する処理には、三項演算子が適しています。ユーザーの年齢は「16歳未満」か「16歳以上」のどちらかにしかならないため、if文を使うよりも効率的に判定できるからです。以下は、ユーザーの年齢を確認するプログラムの例です。

public class EvaluateAge {
    public static void main(String[] args) {
        int age = 22;

        String result = (age >= 16) ? "This user is over 16." : "This user is under 16.";
        System.out.println(result);
    }
}

このコードでは三項演算子が評価されます。条件はtrueとなるため、実行結果は次のようになります。

This user is over 16.

まず、EvaluateAgeというクラスを定義し、顧客の年齢を格納するint型の変数ageを宣言しています。ここではageに22という値を代入しました。

次に、resultという変数を宣言し、その値を三項演算子の評価結果としています。三項演算子は、ユーザーのageが16以上かどうか(age >= 16)を判定します。

条件式がtrueと評価されれば、演算子は「This user is over 16.」を返します。そうでなければ、「This user is under 16.」を返します。コードの最終行では、result変数に格納されたメッセージを出力しています。

もしユーザーの年齢が15歳だった場合、コードは次の文字列を返します。

This user is under 16.

これは、ユーザーの年齢が16歳未満の場合に三項演算子がfalseと評価されるためです。これで、ユーザーがサービスを利用できる年齢に達しているかどうかを確認する仕組みが完成しました。

三項演算子を使うべき場面

三項演算子は、単純なif文をより簡潔にまとめたい場合に使うのが効果的です。適切に使えば、コードの可読性が向上します。

先ほどの例では、1つの式を評価しました。同じ処理を通常のif文で書くと、次のようになります。

if (age >= 16) {
    String result = "This user is over 16.";
} else {
    String result = "This user is under 16.";
}

このif文はシンプルですが、5行にわたって記述されています。一方、三項演算子を使えば、同じ処理をたった1行にまとめられます。

ただし、三項演算子を使うのは、結果として得られる文が短い場合だけにとどめましょう。それ以外の場合は、通常のif文を書く方が適切です。三項演算子の目的はコードを簡潔で読みやすくすることにあり、複雑なif文を無理に三項演算子へ置き換えることは、むしろその目的に反してしまいます。

なお、Javaの三項演算子もif文も、どちらもブーリアン(boolean)型の式を評価します。ブーリアン式とは、評価結果がtrueかfalseのどちらかしかない式のことです。Javaのブーリアンについて詳しく学びたい方は、専用ガイドもあわせて参照してみてください。

まとめ

三項演算子は、Javaにおいてif文をより簡潔に記述し、コードの流れを制御するための便利な機能です。3つのオペランドを受け取ることから「三項演算子」と呼ばれています。

この記事では、Javaの三項演算子の基本を解説しました。さらに、三項演算子とif文の違いや使い分けのポイント、それぞれの具体的な使用例についても確認しました。

Javaプログラミングをもっと深く学びたい方は、Java学習ガイドもチェックしてみてください。おすすめのオンライン講座や、Java習得のための実践的なアドバイスをまとめています。

  1. Javaコンパイラ入門:仕組みの解説と初心者におすすめのオンラインIDE

    5〜10年前、Javaを学ぶのは今ほど手軽なことではありませんでした。当時は、コンパイラとインタプリタを含むJava Development Kit(JDK)をダウンロードし、自分のマシン上で実行環境を整える必要がありました。しかし現在では、無料で利用できるJavaコンパイラがオンライン上に数多く存在します。この記事では、Java言語のコンパイルの仕組みと、練習やプロジェクト作成に活用できるオンラインツールについて詳しく解説します。 Javaプログラムはどのように実行されるのか? Javaは完全なコンパイル型言語ではありません。しかし、かといって完全なインタプリタ型言語でもありません。 ここ

  2. C#の三項演算子(条件演算子)とは?基本構文と使い方を実例付きで解説

    三項演算子とは三項演算子は、C#における条件演算子の一つです。「?」と「:」を使って3つのオペランドを受け取り、ブール式(true / false)を評価することで、条件に応じた値を選択します。if文を使わずに1行で条件分岐を記述できるため、シンプルな条件判定ではコードを簡潔にまとめられるのが大きな特徴です。基本構文y = (z == 1) ? 100 : 180;この構文では、まず最初のオペランドである条件式「z == 1」が評価されます。条件式が true(1) の場合 → 2番目のオペランド「100」が返される条件式が false(0) の場合 → 3番目のオペランド「180」が返される