java 重载 返回_java – 返回方法重载
我是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;
}
我的問題是當我從第二種方法中獲取返回0時,調試器會說“缺少return語句”.然后我嘗試將返回calcFeetAndInchesToCentimetres(inches);,它可以工作,但程序運行了大約數千次.
然后我把返回0,一切都OK.但我不明白為什么我不能把返回calcFeetAndInchesToCentimetres(英寸);當上面的方法(帶有2個參數)得到它時,為什么我需要一個return語句.如果我想在執行第二種方法時轉換厘米的值(僅使用“inches”參數),我該怎么做?
我在塊代碼中意識到的另一件事
double inchesToFeet = inches / 12;
double inchesRemain = inches - (inchesToFeet * 12);
calcFeetAndInchesToCentimetres(inchesToFeet, inchesRemain);
inchesRemain將為0?但該方法效果很好.當我改變inchesToFeet =英寸%12時,它只是沒有顯示任何內容.為什么?
解決方法:
它應該只是:
public static double calcFeetAndInchesToCentimetres(double inches) {
if (inches >= 0){
double inchesToFeet = inches / 12;
double inchesRemain = inches - (inchesToFeet * 12);
return calcFeetAndInchesToCentimetres(inchesToFeet, inchesRemain);
} else {
return -1;
}
}
你說你已經嘗試過返回calcFeetAndInchesToCentimetres(英寸);但這只是遞歸地調用你的方法而且它會永遠遞歸,因為沒有停止條件.
標簽:java,return,overloading,methods
來源: https://codeday.me/bug/20190724/1524847.html
總結
以上是生活随笔為你收集整理的java 重载 返回_java – 返回方法重载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 线程的基本概念_Java多线程
- 下一篇: java排序算法总结_排序算法总结及Ja