005 条件分岐(条件演算子) 031 解答例

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("テストの点数を入力してください: ");
        int score = scanner.nextInt();

        // 条件演算子を使用して評価を行う
        String result = (score >= 90) ? "優秀" :
                        (score >= 80) ? "良好" :
                        (score >= 70) ? "可" :
                                       "不可";

        System.out.println("評価: " + result);
    }
}

このプログラムでは、ユーザーにテストの点数を尋ね、それに対して条件演算子を使用して優秀、良好、可、不可のいずれかの評価を決定し、結果を表示しています。

複数の条件演算子を組み合わせた構造

複数の条件演算子を組み合わせることで、複雑な条件判定を簡潔に表現することができます。これにより、冗長な if-else 文を減らし、コードをスッキリとさせることができます。以下はその基本的な形式です。

result = (condition1) ? value1 :
         (condition2) ? value2 :
         (condition3) ? value3 :
         defaultValue;

この例では、condition1true の場合は value1、そうでなければ condition2true の場合は value2、といった具体的なルールで条件判定が進みます。最終的にどの条件も true にならない場合は defaultValue が代入されます。

以下は、3つの数値 abc の中で最大の数を見つける例です。

int a = 5;
int b = 8;
int c = 3;

int max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
System.out.println("最大の数は: " + max);

この例では、まず a > btrue ならば ((a > c) ? a : c) の部分が評価され、そうでなければ ((b > c) ? b : c) の部分が評価されます。これにより、abc の中で最大の数が求められます。

「005条件分岐」問題集リスト