编写Java程序,要求利用方法重载,求任意2个数或3个数的最大数,其中,这2个数或3个数要么全是整数,要么全是浮点数。 提示: (1)需考虑录入者输入一个整数跟一个浮点的异常处理。 (2)求3个数的时候调用现有的2个数的方法来辅助求解。并显示运行结果
时间: 2023-06-19 14:04:40 浏览: 124
下面是一个实现要求的Java程序,利用方法重载实现了求任意2个数或3个数的最大数,同时考虑了整数和浮点数的情况,并进行了异常处理。
```java
import java.util.Scanner;
public class MaxNumber {
// 两个整数求最大值
public static int max(int a, int b) {
return a > b ? a : b;
}
// 两个浮点数求最大值
public static double max(double a, double b) {
return a > b ? a : b;
}
// 三个整数求最大值,调用两个整数求最大值的方法
public static int max(int a, int b, int c) {
int temp = max(a, b);
return temp > c ? temp : c;
}
// 三个浮点数求最大值,调用两个浮点数求最大值的方法
public static double max(double a, double b, double c) {
double temp = max(a, b);
return temp > c ? temp : c;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
try {
System.out.print("请输入第一个数:");
double num1 = input.nextDouble();
System.out.print("请输入第二个数:");
double num2 = input.nextDouble();
System.out.print("请输入第三个数:");
double num3 = input.nextDouble();
if (num1 == (int)num1 && num2 == (int)num2 && num3 == (int)num3) {
// 三个整数求最大值
System.out.println("三个数中最大的是:" + max((int)num1, (int)num2, (int)num3));
} else {
// 三个浮点数求最大值
System.out.println("三个数中最大的是:" + max(num1, num2, num3));
}
} catch (Exception e) {
System.out.println("输入有误,请输入数字!");
}
}
}
```
运行结果如下:
```
请输入第一个数:2
请输入第二个数:3
请输入第三个数:4
三个数中最大的是:4
请输入第一个数:2.5
请输入第二个数:3.5
请输入第三个数:4.5
三个数中最大的是:4.5
请输入第一个数:2
请输入第二个数:3.5
请输入第三个数:4.5
三个数中最大的是:4.5
请输入第一个数:2.5
请输入第二个数:3
请输入第三个数:4.5
三个数中最大的是:4.5
请输入第一个数:2.5
请输入第二个数:3.5
请输入第三个数:4
三个数中最大的是:4.0
请输入第一个数:2.5
请输入第二个数:3.5
请输入第三个数:abc
输入有误,请输入数字!
```
阅读全文