编写Java程序,要求利用方法重载,求任意2个数或3个数的最大数,其中,这2个数或3个数要么全是整数,要么全是浮点数。 提示: (1)需考虑录入者输入一个整数跟一个浮点的异常处理。 (2)求3个数的时候调用现有的2个数的方法来辅助求解。
时间: 2023-09-11 20:05:13 浏览: 165
### 回答1:
以下是实现要求的Java:
```java
import.Scanner;
public class MaxNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入两个数:");
double num1 = input.nextDouble();
double num2 = input.nextDouble();
System.out.println("最大数为:" + max(num1, num2));
System.out.print("请输入三个数:");
double num3 = input.nextDouble();
System.out.println("最大数为:" + max(num1, num2, num3));
}
public static int max(int num1, int num2) {
return num1 > num2 ? num1 : num2;
}
public static double max(double num1, double num2) {
return num1 > num2 ? num1 : num2;
}
public static double max(double num1, double num2, double num3) {
return max(max(num1, num2), num3);
}
}
```
程序中利用了方法重载,分别定义了求两个整数、两个浮点数和三个浮点数的最大值的方法。在主方法中,先输入两个数,调用求两个数最大值的方法并输出结果;然后再输入三个数,调用求三个数最大值的方法并输出结果。如果输入的数中有一个是整数,输入时会提示输入错误并要求重新输入。
### 回答2:
为了实现该功能,我们可以采用方法重载的方式编写Java程序。
首先,我们可以编写一个方法,用于求解两个整数或者两个浮点数的最大值。该方法接收两个参数,并在方法体中进行比较,最后返回较大的那个数。
```java
public static int getMax(int num1, int num2) {
return Math.max(num1, num2);
}
public static double getMax(double num1, double num2) {
return Math.max(num1, num2);
}
```
其次,为了求解三个数的最大值,我们可以调用上面定义的求解两个数的方法。编写一个新的方法,该方法接收三个参数,然后分别调用两个数的最大值方法来获取前两个数的最大值,最后再将这个最大值与第三个数进行比较,返回三个数中的最大值。
```java
public static int getMax(int num1, int num2, int num3) {
int max = getMax(num1, num2);
return Math.max(max, num3);
}
public static double getMax(double num1, double num2, double num3) {
double max = getMax(num1, num2);
return Math.max(max, num3);
}
```
最后,在程序的主方法中,我们可以通过用户输入来测试这些方法:
```java
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入两个整数:");
int intNum1 = scanner.nextInt();
int intNum2 = scanner.nextInt();
System.out.println("最大整数:" + getMax(intNum1, intNum2));
System.out.println("请输入两个浮点数:");
double doubleNum1 = scanner.nextDouble();
double doubleNum2 = scanner.nextDouble();
System.out.println("最大浮点数:" + getMax(doubleNum1, doubleNum2));
System.out.println("请输入三个整数:");
int intNum3 = scanner.nextInt();
System.out.println("最大整数:" + getMax(intNum1, intNum2, intNum3));
System.out.println("请输入三个浮点数:");
double doubleNum3 = scanner.nextDouble();
System.out.println("最大浮点数:" + getMax(doubleNum1, doubleNum2, doubleNum3));
scanner.close();
}
```
以上就是基于方法重载的Java程序,能够根据用户输入求出任意两个或三个整数或浮点数中的最大值。同时在程序中考虑了输入异常的处理。
### 回答3:
编写Java程序,利用方法重载求任意2个数或3个数的最大数。我们可以创建一个名为"Maximum"的类,其中包含两个重载的方法"max"。第一个方法"max"用于比较两个整数,并返回较大的那个数;第二个方法"max"用于比较两个浮点数,并返回较大的那个数。
代码示例如下:
```java
public class Maximum {
public static int max(int num1, int num2) {
return num1 > num2 ? num1 : num2;
}
public static double max(double num1, double num2) {
return num1 > num2 ? num1 : num2;
}
public static int max(int num1, int num2, int num3) {
int max = max(num1, num2); //调用前面的两个数比较的方法
return max(max, num3); //再将最大值与第三个数比较
}
public static double max(double num1, double num2, double num3) {
double max = max(num1, num2); //调用前面的两个数比较的方法
return max(max, num3); //再将最大值与第三个数比较
}
public static void main(String[] args) {
int intMax = max(10, 20);
double doubleMax = max(10.5, 20.3);
int int3Max = max(10, 20, 30);
double double3Max = max(10.5, 20.3, 30.7);
System.out.println("两个整数的最大值为:" + intMax);
System.out.println("两个浮点数的最大值为:" + doubleMax);
System.out.println("三个整数的最大值为:" + int3Max);
System.out.println("三个浮点数的最大值为:" + double3Max);
}
}
```
通过方法重载,我们可以使用不同的数据类型以及参数数量来求解最大值,实现代码的重用。在三个数的情况下,我们可以调用已有的两个数比较的方法,并将最大值与第三个数进行比较,得到最终的最大值。
阅读全文