新・明解 Java 入門 演習 10-3 解答
Hello, Terminal!swaponQです!
今回は演習 10-3 に取り組んでいこうと思います。
- 演習 10-3
二値/三値/配列の最小値を求めるメソッドや最大値を求めるメソッドを集めたユーティリティクラスMinMaxを作成せよ。
・MinMax.java
class MinMax { public static double getMx3(double x, double y, double z) { double M = Math.max(x,y); double Max = Math.max(M,z); return Max; } public static double getMn3(double x, double y, double z) { double m = Math.min(x,y); double min = Math.min(m,z); return min; } public static double getMx2(double x, double y) { double M = Math.max(x,y); return M; } public static double getMn2(double x, double y) { double m = Math.min(x,y); return m; } public static double getMxMat(double[] a) { double max = a[0]; for (int i = 0; i < a.length; i++) max = Math.max(max,a[i]); return max; } public static double getMnMat(double[] a) { double min = a[0]; for (int i = 0; i < a.length; i++) min = Math.min(min,a[i]); return min; } }
・MinMaxTester.java
import java.util.Scanner; public class MinMaxTester { public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.print("二値...1/三値...2/配列...3:"); int choice = stdIn.nextInt(); if (choice == 1) { System.out.print("xの値:"); double x = stdIn.nextDouble(); System.out.print("yの値:"); double y = stdIn.nextDouble(); System.out.println("最大値は" + MinMax.getMx2(x,y) + "です。"); System.out.println("最小値は" + MinMax.getMn2(x,y) + "です。"); } else if (choice == 2) { System.out.print("xの値:"); double x = stdIn.nextDouble(); System.out.print("yの値:"); double y = stdIn.nextDouble(); System.out.print("zの値:"); double z = stdIn.nextDouble(); System.out.println("最大値は" + MinMax.getMx3(x,y,z) + "です。"); System.out.println("最小値は" + MinMax.getMn3(x,y,z) + "です。"); } else if (choice == 3) { System.out.print("配列数:"); int n = stdIn.nextInt(); double[] a = new double[n]; System.out.println("配列数" + n +"の数の大小を求めます。"); for (int i = 0; i < n; i++) { System.out.print("a[" + i + "]:"); a[i] = stdIn.nextDouble(); } System.out.println("最大値は" + MinMax.getMxMat(a) + "です。"); System.out.println("最小値は" + MinMax.getMnMat(a) + "です。"); } } }
今回は以上です。お疲れ様でした!
次回は演習 10-4 です。
Goodbye, Terminal… swaponQでした!