LoginSignup
1
1

More than 1 year has passed since last update.

さまざまな場面で使う三項演算子

Posted at

目次

 1.基本構文
 2.条件によって出力の内容が異なる場合
 3.条件によって代入する値が異なる場合
 4.return文に記載する場合
 5.応用編

1. 基本構文

条件 ? trueの場合 : falseの場合

三項演算子を使用することで、コードの記述量を減らし実装を簡潔にすることができます。
また、if文のネストが深くなりすぎるのを防ぐこともできます。

では実際の実装例を見ていきましょう。
※実装例に記載の魚リストの要素数はさいごまで2のままです。

2. 条件によって出力の内容が異なる場合

if文ver.

// 魚リスト
List<String> fishList = new ArrayList<String>();
fishList.add("まぐろ");
fishList.add("かつお");

// if文ver.
if (fishList.size() >= 3) {
    System.out.println("要素数は3以上です");

} else {
    System.out.println("要素数は3以上ではありません");
}

三項演算子ver.

// 魚リスト
List<String> fishList = new ArrayList<String>();
fishList.add("まぐろ");
fishList.add("かつお");

// 三項演算子ver.
System.out.println(fishList.size() >= 3 ? "要素数は3以上です" : "要素数は3以上ではありません");

出力結果は、if文ver、三項演算子ver、どちらも「要素数は3以上ではありません」。

3. 条件によって代入する値が異なる場合

if文ver.

// 魚リスト
List<String> fishList = new ArrayList<String>();
fishList.add("まぐろ");
fishList.add("かつお");

// if文ver.
String str1 = "";
if (fishList.size() >= 3) {
    str1 = "要素数は3以上です";
    System.out.println(str1);

} else {
    str1 = "要素数は3以上ではありません";
    System.out.println(str1);
}

三項演算子ver.

// 魚リスト
List<String> fishList = new ArrayList<String>();
fishList.add("まぐろ");
fishList.add("かつお");

// 三項演算子ver.
String str2 = fishList.size() >= 3 ? "要素数は3以上です" : "要素数は3以上ではありません";
System.out.println(str2);

出力結果はどちらも「要素数は3以上ではありません」。

4. return文に記載する場合

if文ver.

public static void main (String args[]) {
		
    // 魚リスト
    List<String> fishList = new ArrayList<String>();
    fishList.add("まぐろ");
    fishList.add("かつお");
    
    // 判定メソッド呼び出し
    System.out.println(isTrue(fishList));
}

// 判定メソッド
// リストの要素数が3以上の場合true、3より少ない場合falseを返却
private static boolean isTrue(List<String> list) {
    
    if (list.size() >= 3) {
        return true;
    }
    
    return false;
}

三項演算子ver.

public static void main (String args[]) {
		
    // 魚リスト
    List<String> fishList = new ArrayList<String>();
    fishList.add("まぐろ");
    fishList.add("かつお");
    
    // 判定メソッド呼び出し
    System.out.println(isTrue(fishList));
}

// 判定メソッド
// リストの要素数が3以上の場合true、3より少ない場合falseを返却
private static boolean isTrue(List<String> list) {

    return (list.size() >= 3 ? true : false);
}

出力結果はどちらも「false」。

5. 三項演算子の応用

if文ver.

// 魚リスト
List<String> fishList = new ArrayList<String>();
fishList.add("まぐろ");
fishList.add("かつお");

// if文ver.
if (fishList.size() == 0) {
    System.out.println("要素数は0です");

} else if (fishList.size() >= 3) {
    System.out.println("要素数は3以上です");

} else {
    System.out.println("要素数は3以上ではありません");
}

三項演算子ver.

// 魚リスト
List<String> fishList = new ArrayList<String>();
fishList.add("まぐろ");
fishList.add("かつお");

// 三項演算子ver.
System.out.println(fishList.size() == 0 ? "要素数は0です" : (fishList.size() >= 3 ? "要素数は3以上です" : "要素数は3以上ではありません"));

魚リストの要素数が0でない場合、コロン右の()内の処理が行われます。
要素数は3より少ないため、2つ目のコロン右の文字列が出力されます。
応用としてこちらの記事に記載しましたが、こちらはコードが難解になるためおすすめしません。

出力結果はどちらも「要素数は3以上ではありません」。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1