2016-11-06 66 views
2

我想用我的randomRainMonth()方法生成的變量用於另一種方法totalRain()的計算。但是通過在我的totalRain()中使用double[] totalsum = randomRainMonth(list);,它只會生成一組新的隨機變量,因爲它會再次調用該方法。誰能幫忙?有沒有辦法在另一種方法中使用隨機數組方法中的現有變量?

public class RainFall{ 

    public static void main (String[] args){ 

    double [] monthRain = new double[12]; 
    String[] monthName = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; 
    randomRainMonth(monthRain); 
    System.out.println("-------"); 
    totalRain(monthRain, monthName); 
// printMonths(monthName); 
    } 

    public static String[] printMonths(String list[]){  
    String[] pM = new String[list.length]; 
    for (int i = 0; i<list.length; i++) { 
     //System.out.println(list[i]); 
     } 
    return pM; 
    } 

    public static double[] randomRainMonth(double list[]){ 
     double[] rdMonth = new double[list.length]; 

     for(int i = 0; i < list.length; i++){ 
     rdMonth[i] = (int)(Math.random() * 100); 
     //System.out.println(rdMonth[i]); 
     } 
     return rdMonth; 
    } 

    public static double[] totalRain(double list[], String list2 []){ 

     String[] mnth = printMonths(list2); 
     double[] totalsum = randomRainMonth(list); 

     double sum = 0; 
     for(double i : totalsum) { 
     sum += i; 
     } 


     for (int i = 0; i<list2.length; i++) { 

     System.out.print(mnth[i] +": "); 
     System.out.println(totalsum[i]); 
     } 
     System.out.println("Total: "); 
     System.out.println(sum); 

     return totalsum; 

    } 
} 

[解決] 最終代碼:

public class RainFall{ 

    public static void main (String[] args){ 


    double[] monthRain = randomRainMonth(); 
    String[] monthName = printMonths(); 
// randomRainMonth(); 
    System.out.println("-------"); 
    totalRain(monthRain, monthName); 
// printMonths(monthName); 
    avgRainMonthly(monthRain); 
    } 

    public static String[] printMonths(){  
    String[] monthName = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; 
    for (int i = 0; i<12; i++) { 
     //System.out.println(monthName[i]); 
     } 
    return monthName; 
    } 

public static double[] randomRainMonth(){ 

     double [] monthRain = new double[12]; 
     for(int i = 0; i < 12; i++){ 
     monthRain[i] = (int)(Math.random() * 100); 
     //System.out.println(monthRain[i]); 
     } 
     return monthRain; 
    } 

    public static double[] totalRain(double list[], String list2 []){ 

     String[] mnth = list2; 
     double[] totalsum = list; 

     double sum = 0; 
     for(double i : totalsum) { 
     sum += i; 
     } 


     for (int i = 0; i<12; i++) { 

     System.out.print(mnth[i] +": "); 
     System.out.println(totalsum[i]); 
     } 
     System.out.println("Total: "); 
     System.out.println(sum); 

     return totalsum; 

    } 

    public static double[] avgRainMonthly(double list []){ 

     double[] average = list; 

     double avg = 0; 
     double finAvg = 0; 
     for(double a : average) { 
     avg = avg + a; 
     finAvg = avg/12; 
     } 
     System.out.println(finAvg); 
     return average; 
    } 
} 
+0

不要再在'totalRain'中調用方法,你有'list1'和'list2' - 你在'totalRain'中究竟想要什麼? –

回答

1

你不應該創建double [] monthRain = new double[12];提前randomRainMonth(monthRain);方法調用的,因爲實際的數組對象需要創建和方法randomRainMonth返回。

相反,你需要在你的main申報double[]陣列monthRain,然後收集由randomRainMonth(monthRain)如下返回的結果:

//declare the double array 
double[] monthRain = randomRainMonth(); 

randomRainMonth()方法爲如下:

public static double[] randomRainMonth(){ 
     //this method should be responsible to create the double array object 
     //and then return it to the caller after populating with elements 
     double [] monthRain = new double[12]; 

     for(int i = 0; i < list.length; i++){ 
     rdMonth[i] = (int)(Math.random() * 100); 
     //System.out.println(rdMonth[i]); 
     } 
     return monthRain; 
    } 

現在,您可以將收集的數組(通過randomRainMonth返回)傳遞給下一個方法(您已經在做這些):

totalRain(monthRain, monthName); 
+0

非常感謝!但是你給我的'randomRainMonth()'方法的代碼並不完全正確。我發佈了我的最終代碼。再次非常感謝你的幫助 –

+0

很好,它正在工作,你正在談論變量monthRain,更正以上 – developer

相關問題