编写程序,使用方法重载。解决求几个数中 最小数的方法,能够完成在两个和一个数中查找最小数的 任务。这些数由用户输入,有int型和double型数据 。用java
时间: 2024-09-29 16:10:47 浏览: 37
在Java中,编写一个包含方法重载的程序来找出用户输入的几个数中的最小值,无论是两个还是单个数,并且支持int型和double型的数据,你可以这样做:
```java
import java.util.Scanner;
public class MinFinder {
// 方法重载1 - 找出两个int型数的最小值
public int findMin(int num1, int num2) {
return Math.min(num1, num2);
}
// 方法重载2 - 找出两个double型数的最小值
public double findMin(double num1, double num2) {
return Math.min(num1, num2);
}
// 方法重载3 - 找出一个数的最小值(视为数组的情况)
public double findMinNumber(double... numbers) {
if (numbers.length > 0) {
return Arrays.stream(numbers).min().orElse(Double.NaN); // 返回NaN代表无输入
} else {
throw new IllegalArgumentException("No number provided.");
}
}
// 主函数,接收用户输入
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter two integers or a single number (separated by comma):");
String input = scanner.nextLine();
try {
// 分割字符串并转换成双精度数组
String[] values = input.split(",");
double[] nums = new double[values.length];
for (int i = 0; i < values.length; i++) {
nums[i] = Double.parseDouble(values[i]);
}
MinFinder minFinder = new MinFinder();
double result;
// 判断输入的元素数量
if (nums.length == 2) {
result = minFinder.findMin(nums[0], nums[1]);
} else if (nums.length == 1) {
result = minFinder.findMinNumber(nums[0]);
} else {
throw new IllegalArgumentException("Invalid input! Please enter exactly one or two numbers.");
}
System.out.println("The minimum value is: " + result);
} catch (NumberFormatException e) {
System.out.println("Invalid input! Please enter only numbers.");
}
}
}
```
这个程序首先读取用户的输入,然后根据输入的数量调用相应的方法。注意,这里假设用户输入的是逗号分隔的数字,实际应用中可能会增加错误检查和用户提示。
阅读全文