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 값)를 사용하여 입력 된 두 개의 숫자 중 가장 큰 숫자를 찾아야합니다.함수는 다른 입력으로 동일한 블록을 호출합니다.
호출이 특정 방법으로 인쇄 텍스트 (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)
이 때문에 잘못된 변수 초기화인지? 이 문제를 어떻게 해결할 수 있습니까?
당신이 참조 "를 두 번 NUM1을 초기화하기 때문에, num2; " 더블 타입으로 당신은 단지 2 개의 더블 레퍼런스 비트 패턴의 복사본을이 경우에 보냅니다. jvm은 dd가 가장 적합하다고 생각합니다. – HRgiger
이 문제를 해결할 수 있습니까? – JoeTinnySpace
왜 신경 쓰시겠습니까? 내가 완벽하게 정수뿐만 아니라 이중 범위를 맞는 3을 입력하자, 그래서 당신이 내가 오른쪽으로 이해한다면 더 큰 범위를 가지고 또한 두 배로 갈 것이라고 소수점을 처리하고 싶다면, 당신에게 가장 적합한 선택할 수 있도록 말 그들은 어떤 기본 유형 – HRgiger