数値操作

Java – 3つの値から最小値を求める方法

Javaで3つの値から最小値を求めるには、Math.minメソッドを2回使用する方法が一般的です。

まず、2つの値の最小値を求め、その結果と残りの1つの値を比較して最小値を取得します。

例えば、Math.min(Math.min(a, b), c)のように記述します。

この方法は簡潔で可読性が高く、整数や浮動小数点数などの数値型に対応しています。

Mathクラスを使った最小値の求め方

JavaのMathクラスには、数値に関する便利なメソッドが多数用意されています。

その中でも、最小値を求めるためのminメソッドを使用することで、簡単に3つの値の中から最小値を取得することができます。

以下にその方法を示します。

import java.util.Scanner; // Scannerクラスをインポート
public class App {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // Scannerのインスタンスを作成
        // ユーザーから3つの値を入力してもらう
        System.out.print("1つ目の値を入力してください: ");
        int value1 = scanner.nextInt(); // 1つ目の値
        System.out.print("2つ目の値を入力してください: ");
        int value2 = scanner.nextInt(); // 2つ目の値
        System.out.print("3つ目の値を入力してください: ");
        int value3 = scanner.nextInt(); // 3つ目の値
        // Mathクラスのminメソッドを使って最小値を求める
        int minValue = Math.min(Math.min(value1, value2), value3); // 最小値を計算
        // 結果を表示
        System.out.println("最小値は: " + minValue); // 最小値を出力
    }
}
1つ目の値を入力してください: 10
2つ目の値を入力してください: 5
3つ目の値を入力してください: 8
最小値は: 5

このコードでは、Math.minメソッドを2回使用して、3つの値の中から最小値を求めています。

最初に2つの値の最小値を求め、その結果と3つ目の値を比較することで、最終的な最小値を得ることができます。

条件分岐を使った最小値の求め方

条件分岐を使用することで、3つの値の中から最小値を求めることも可能です。

if文を使って、各値を比較し、最小値を決定します。

以下にその方法を示します。

import java.util.Scanner; // Scannerクラスをインポート
public class App {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // Scannerのインスタンスを作成
        // ユーザーから3つの値を入力してもらう
        System.out.print("1つ目の値を入力してください: ");
        int value1 = scanner.nextInt(); // 1つ目の値
        System.out.print("2つ目の値を入力してください: ");
        int value2 = scanner.nextInt(); // 2つ目の値
        System.out.print("3つ目の値を入力してください: ");
        int value3 = scanner.nextInt(); // 3つ目の値
        // 最小値を格納する変数を初期化
        int minValue = value1; // 初期値として1つ目の値を設定
        // 条件分岐で最小値を求める
        if (value2 < minValue) {
            minValue = value2; // 2つ目の値が小さい場合
        }
        if (value3 < minValue) {
            minValue = value3; // 3つ目の値が小さい場合
        }
        // 結果を表示
        System.out.println("最小値は: " + minValue); // 最小値を出力
    }
}
1つ目の値を入力してください: 15
2つ目の値を入力してください: 7
3つ目の値を入力してください: 10
最小値は: 7

このコードでは、最初に1つ目の値を最小値として設定し、その後、if文を使って2つ目と3つ目の値を比較しています。

条件を満たす場合に最小値を更新することで、最終的な最小値を求めることができます。

三項演算子を使った最小値の求め方

三項演算子を使用することで、簡潔に3つの値の中から最小値を求めることができます。

三項演算子は、条件式に基づいて値を選択するための便利な構文です。

以下にその方法を示します。

import java.util.Scanner; // Scannerクラスをインポート
public class App {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // Scannerのインスタンスを作成
        // ユーザーから3つの値を入力してもらう
        System.out.print("1つ目の値を入力してください: ");
        int value1 = scanner.nextInt(); // 1つ目の値
        System.out.print("2つ目の値を入力してください: ");
        int value2 = scanner.nextInt(); // 2つ目の値
        System.out.print("3つ目の値を入力してください: ");
        int value3 = scanner.nextInt(); // 3つ目の値
        // 三項演算子を使って最小値を求める
        int minValue = (value1 < value2) ? 
                        (value1 < value3 ? value1 : value3) : 
                        (value2 < value3 ? value2 : value3); // 最小値を計算
        // 結果を表示
        System.out.println("最小値は: " + minValue); // 最小値を出力
    }
}
1つ目の値を入力してください: 20
2つ目の値を入力してください: 5
3つ目の値を入力してください: 15
最小値は: 5

このコードでは、三項演算子を2回使用して、3つの値の中から最小値を求めています。

最初に1つ目と2つ目の値を比較し、条件に応じてさらに3つ目の値と比較することで、最終的な最小値を得ることができます。

三項演算子を使うことで、コードが簡潔になり、可読性が向上します。

配列を使った最小値の求め方

配列を使用することで、複数の値を一元管理し、最小値を求めることができます。

配列に値を格納し、ループを使って最小値を見つける方法を以下に示します。

import java.util.Scanner; // Scannerクラスをインポート
public class App {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // Scannerのインスタンスを作成
        // ユーザーから3つの値を入力してもらう
        int[] values = new int[3]; // 配列を作成
        for (int i = 0; i < values.length; i++) {
            System.out.print((i + 1) + "つ目の値を入力してください: ");
            values[i] = scanner.nextInt(); // 配列に値を格納
        }
        // 最小値を初期化
        int minValue = values[0]; // 初期値として1つ目の値を設定
        // 配列をループして最小値を求める
        for (int i = 1; i < values.length; i++) {
            if (values[i] < minValue) {
                minValue = values[i]; // 最小値を更新
            }
        }
        // 結果を表示
        System.out.println("最小値は: " + minValue); // 最小値を出力
    }
}
1つ目の値を入力してください: 12
2つ目の値を入力してください: 3
3つ目の値を入力してください: 8
最小値は: 3

このコードでは、配列を使用して3つの値を格納し、forループを使って各値を比較しています。

最初に1つ目の値を最小値として設定し、その後、配列内の他の値と比較することで、最終的な最小値を求めることができます。

配列を使うことで、値の数が増えた場合でも同様の方法で最小値を求めることができ、柔軟性が向上します。

ストリームAPIを使った最小値の求め方

JavaのストリームAPIを使用することで、コレクションや配列から簡潔に最小値を求めることができます。

ストリームを利用することで、コードがより直感的で読みやすくなります。

以下にその方法を示します。

import java.util.Scanner; // Scannerクラスをインポート
import java.util.stream.IntStream; // IntStreamをインポート
public class App {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // Scannerのインスタンスを作成
        // ユーザーから3つの値を入力してもらう
        int[] values = new int[3]; // 配列を作成
        for (int i = 0; i < values.length; i++) {
            System.out.print((i + 1) + "つ目の値を入力してください: ");
            values[i] = scanner.nextInt(); // 配列に値を格納
        }
        // ストリームAPIを使って最小値を求める
        int minValue = IntStream.of(values) // 配列からストリームを作成
                                 .min() // 最小値を取得
                                 .orElseThrow(); // 値が存在しない場合の例外処理
        // 結果を表示
        System.out.println("最小値は: " + minValue); // 最小値を出力
    }
}
1つ目の値を入力してください: 25
2つ目の値を入力してください: 10
3つ目の値を入力してください: 18
最小値は: 10

このコードでは、IntStream.ofメソッドを使用して配列からストリームを作成し、minメソッドを呼び出すことで最小値を求めています。

orElseThrowメソッドを使うことで、もし配列が空の場合には例外を投げるようにしています。

ストリームAPIを利用することで、コードがシンプルになり、可読性が向上します。

まとめ

この記事では、Javaを使用して3つの値から最小値を求めるさまざまな方法について解説しました。

具体的には、Mathクラス、条件分岐、三項演算子、配列、そしてストリームAPIを活用したアプローチを紹介しました。

これらの手法を活用することで、プログラムの要件に応じた柔軟な実装が可能になりますので、ぜひ実際にコードを書いて試してみてください。

関連記事

Back to top button