2017-10-06 26 views
0

下面是一個程序,我很難用返回的double值輸出字符串消息。任何幫助非常感謝,我不知道從哪裏去。我可能過度思考它或看到一個簡單的解決方案。謝謝!難以輸出字符串與返回的雙重

預期輸出是:

average = 12.5 
average = 7.63 
average = 6.96 

但是我的程序輸出:

12.5 
7.63 
6.96 

這裏是我的代碼:

class Test2{ 
     public static void main(String[] args){ 
      int i, j; 
      double di, dj, dk; 
      i = 20; 
      j = 5; 
      Overload ol = new Overload(); 
      System.out.println(ol.findAverage(i, j)); 
      di = 14.29; 
      dj = 0.97; 
      System.out.println(ol.findAverage(di, dj)); 
      di = 3.51; 
      dj = 13.5; 
      dk = 3.87; 
      System.out.println(ol.findAverage(di, dj, dk)); 
     } 
    } 

    class Overload { 
     private int i, j; 
     private double di, dj, dk; 
     private double average; 

     public double findAverage(int i, int j) { 
      average = ((i + j)/2.0);  
      return average; 
     } 

     public double findAverage(double di, double dj) { 
      average = (di + dj)/2.0; 
      return average; 
     } 

     public double findAverage(double di, double dj, double dk) { 
      average = (di + dj + dk)/3.0; 
      return average; 
     } 

     public String findAverage() { 
      return "average = " + average; 
     } 
    } 
+0

嗨,你叫錯功能時你做你的輸出:你必須調用findAverage() – Tuco

+0

作爲一個方面說明:閱讀有關可變參數https://www.javatpoint.com/varargs並寫一個方法來處理可變數量的參數:'findAverage(double ... d)' – c0der

回答

3

當你撥打:

System.out.println(ol.findAverage(i, j)); 

的背後,你在呼喚

public double findAverage(int i, int j) { 
     average = ((i + j)/2.0);  
     return average; 
    } 

此功能只返回雙重計算

如果你希望你的正確的輸出,只需做:

ol.findAverage(i, j); 
System.out.println(ol.findAverage()); 
+1

我sugest重命名ol.findAverage()toString()這是更好,以避免歧義 – Tuco

+0

這似乎工作!然而,我不允許修改Test2課程,所以我在那裏有我必須與之合作的內容。 :( –

+0

你知道它爲什麼現在在工作嗎? – Tuco