【发布时间】:2016-11-12 01:00:10
【问题描述】:
我是 Java 新手,我正在自己学习它。我在尝试方法重载时遇到了麻烦。这是代码
public static void main(String[] args) {
calculateScore();
calculateScore(500);
calculateScore("Duy", 600);
calcFeetAndInchesToCentimetres(100, 3.5);
calcFeetAndInchesToCentimetres(100*12 + 3.5);
}
public static double calcFeetAndInchesToCentimetres(double feet, double inches) {
if (feet >= 0 && inches >= 0 && inches <= 12) {
double footToInches = feet * 12;
double centimetres = (inches + footToInches) * 2.54;
System.out.println("The value in centimetres is " + centimetres + " cm.");
return centimetres;
} else {
return -1;
}
}
public static double calcFeetAndInchesToCentimetres(double inches) {
if (inches >= 0){
double inchesToFeet = inches / 12;
double inchesRemain = inches - (inchesToFeet * 12);
calcFeetAndInchesToCentimetres(inchesToFeet, inchesRemain);
return 0;
} else {
return -1;
}
我的问题是当我从第二种方法中获取return 0 时,调试器说“缺少返回语句”。然后我尝试输入return calcFeetAndInchesToCentimetres(inches);,它可以工作但程序运行了大约数千次。
然后我输入return 0,一切正常。但是我不明白为什么我不能把return calcFeetAndInchesToCentimetres(inches); 放在上面,当上面的方法(带有2个参数)已经有了它时,为什么我需要一个return语句。如果我想在执行第二种方法(仅使用“英寸”参数)时转换厘米的值,我该怎么办?
我在这个块代码中意识到的另一件事
double inchesToFeet = inches / 12;
double inchesRemain = inches - (inchesToFeet * 12);
calcFeetAndInchesToCentimetres(inchesToFeet, inchesRemain);
inchesRemain 将为 0?但是这个方法效果很好。当我更改inchesToFeet = inches % 12 时,它只是没有显示任何内容。为什么?
【问题讨论】:
标签: java methods return overloading