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