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

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

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

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

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

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

 

三項演算子とは

三項演算子とは、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行で記述することができます。

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

【Java入門】if文で条件分岐(else、AND/OR、否定、省略、三項演算子)
更新日 : 2019年4月22日

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

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

三項演算子の書き方:

条件式 ? 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文よりも短い行で簡潔にコードを記述できるのでぜひ覚えてくださいね。もし、三項演算子についてを忘れてしまったらこの記事を確認してください!

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]