import java.io.*;
public class LargestOfTwo{
public static void main(String args[]) throws Exception{
BufferedReader scan = new BufferedReader(new InputStreamReader(System.in));
double num1, num2 , large;
System.out.println("Enter two numbers, and I will show you which one's largest!\n");
System.out.println("Enter two numbers: ");
num1 = Double.parseDouble(scan.readLine());
num2 = Double.parseDouble(scan.readLine());
large = largest(num1,num2);
System.out.print("Largest of the numbers is "+large);
}
private static double largest(int x,double y){
System.out.println("id");
if (x>y)
return x;
else
return y;
}
private static double largest(double x,int y){
System.out.println("ii");
if (x>y)
return x;
else
return y;
}
private static double largest(double x,double y){
System.out.println("dd");
if (x>y)
return x;
else
return y;
}
}
我需要使用函数重载(输入浮点值和int值)找到2个输入数字中最大的数字。
我通过那些印刷文本(id,ii,dd)检查了调用是否转到了特定方法。
private static double largest(int x,double y){
System.out.println("id");
}
private static double largest(double x,int y){
System.out.println("ii");
}
private static double largest(double x,double y){
System.out.println("dd");
}
但它只执行dd: -
private static double largest(double x,double y)
是因为错误的变量初始化了吗?我该如何解决这个问题?
答案 0 :(得分:2)
num1
和num2
都被声明为double
,因此除了你得到的内容之外,没有其他任何结果可以预期。
答案 1 :(得分:2)
在这一行中,num1和num2是double。所以具有双参数的方法是调用。
num1 = Double.parseDouble(scan.readLine());
num2 = Double.parseDouble(scan.readLine());
答案 2 :(得分:1)
如果你想调用largest(int x,double y)
方法,那么将num1
转换为整数,例如largest((int)num1, num2).
如果要调用largest(int x,int y)
,则转换num1
}和num2
作为整数