2016-11-06 40 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

相关问题