【Java入門】三項演算子でif文を簡潔に記述する方法

Javaには「if-else文」を1行で簡単に記述できる三項演算子があります。

しかし、初心者にとっては「書き方や使い方がいまいちわからない…」と悩んでいる方も多いのではないでしょうか?そこで、この記事では三項演算子について以下の内容で解説していきます!

  • 【基礎】三項演算子とは
  • 【基礎】三項演算子の使い方
  • 【発展】三項演算子を使う時の注意事項
  • 【発展】複数の条件をネスト(入れ子)で使う方法

三項演算子は使い方さえ覚えてしまえば、非常に便利ですのでぜひ理解しておきましょう!

>>>今すぐ「三項演算子の使い方」を知りたい方はこちら

なお、Javaの記事については、こちらにまとめています。

目次

三項演算子とは

三項演算子とは、if文のように条件分岐で使用する演算子です。三項演算子は、if文の省略や代替として使用します。

しかし、三項演算子は複雑な処理では読みにくくなり可読性を損なうので、処理によってif-else文と使い分けてください。三項演算子は次のように記述します。

条件式 ? trueの場合の戻り値 : falseの場合の戻り値

条件式が「true」の場合と、「false」の場合で戻り値を変えることができるので、条件分岐に使用できます。

三項演算子の使い方

ここでは、三項演算子の使い方を解説します。三項演算子はif文の代わりに使うことができます。

次のプログラムで三項演算子の使い方をif文と比較して確認してみましょう。

public class Main {
    public static void main(String[] args) {

        String str = "abc";
        String result;

        // 三項演算子の場合
        result = (str == "abc") ? "Samurai" : "Engineer";
        System.out.println(result);

        // if文の場合
        if (str == "abc") {
            result = "Samurai";
        } else {
            result = "Engineer";
        }
        System.out.println(result);
    }
}

実行結果:

Samurai
Samurai

このようにして、if文の代わり三項演算子を使うことができました。

三項演算子を使う時の注意事項

三項演算子は、条件によって返す値を変えたいときに使います。そのため、値を返さずに処理を分岐させたいときには使えません。処理を変えたいときにはif文を使うようにしましょう。

複数の条件をネスト(入れ子)で使う方法

三項演算子もネスト(入れ子)で使うことができます。次のサンプルプログラムでは三項演算子のネストを使って、数値が2で割り切れるか、3で割り切れるかという複数の条件で判定しています。

以下のサンプルコードを見てみましょう。

public class JavaIfOneLine {
 
    public static void main(String[] args) {
        int num = 4;
        String result = ((num % 2) == 0) ? ((num % 3 == 0)) ? "numは2でも3でも割り切れます" : "numは2では割り切れますが3では割り切れません" 
                : ((num % 3 == 0)) ? "numは2では割り切れませんが3では割り切れます" : "numは2でも3でも割り切れません";
        System.out.println(result);
    }

}

実行結果:

numは2では割り切れますが3では割り切れません

1つ目の条件式((num % 2) == 0)で、2で割り切れたのならの次の条件式((num % 3) == 0)に移り、3で割り切れるか判定しています。

次に条件にあった文字列を返します。1つ目の条件式((num % 2) == 0)で割り切れなかった場合は、次の行の条件式((num % 3) == 0)が判定されます。

次に条件にあった文字列を返します。このように4通りの判定結果を返すプログラムを三項演算子を使って作ることができました。ネストを使うことによって、複数の条件で分岐をさせる処理を行うことができました。

ちなみに、三項演算子を使わずif文で同じプログラムを組むと以下のようになります。

public class JavaIfOneLine {
 
    public static void main(String[] args) {
        int num = 4;
        String result;
        if((num % 2) == 0){
            if((num % 3) == 0){
                result = "numは2でも3でも割り切れます";
            }else{
                result = "numは2では割り切れますが3では割り切れません";
            }
        }else{
            if((num % 3) == 0){
                result = "numは2で割り切れませんが3では割り切れます";
            }else{
                result = "numは2でも3でも割り切れません";
            }
        }
        System.out.println(result);
    }

}

if文で処理が1行の時の省略について

if文で処理が1行の場合「{ }」を省略して1行で記述することができます。

こちらで詳しく解説していますので、ぜひ参考にしてくださいね!

三項演算子の使い方まとめ

ここでは、記事内で紹介した三項演算子の基本文法と使い方をまとめています。

三項演算子の書き方:

条件式 ? trueの場合の戻り値 : falseの場合の戻り値

条件式がtrue、falseによって異なる戻り値を指定できます。

三項演算子の使い方:

public class Main {
    public static void main(String[] args) {
        
        String str = "abc";
        String result1;
 
        result1 = (str == "abc") ? "strはabcです" : "strはabc以外です";
        System.out.println(result1);
 
    }
}
strはabcです

三項演算子の使い方(ネストする場合):

public class Main {
    public static void main(String[] args) {
        
        int num = 4;
        String result = ((num % 2) == 0) ? ((num % 3 == 0)) ? 
        "numは2でも3でも割り切れます" : "numは2では割り切れますが3では割り切れません" 
                : ((num % 3 == 0)) ? 
                "numは2では割り切れませんが3では割り切れます" : "numは2でも3でも割り切れません";
        System.out.println(result);
 
    }
}
numは2では割り切れますが3では割り切れません

まとめ

いかがでしたか?

今回は三項演算子の使い方を解説しました。三項演算子はif文よりも短い行で簡潔にコードを記述できるのでぜひ覚えてくださいね。もし、三項演算子についてを忘れてしまったらこの記事を確認してください!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次