传递数组有些麻烦

时间:2014-11-11 18:28:42

标签: java arrays methods

嗨,我是新的编码,无论如何,我的教授给我们一个问题,我有点困惑。我不断收到“错误:无法访问的声明RainFall ds = new RainFall(months);”。现在我的代码还没有完成,它可能没有任何意义我继续使它变得更糟,因为我试图纠正它所以我提前道歉。无论如何这里是问题和代码

写一个降雨级别,将12个月中每个月的总降雨量存储到一系列双打中。程序应该有返回以下内容的方法:

全年的总降雨量 月平均降雨量 下雨最多的月份 雨量最少的月份

要求用户在您的主要输入12个值。在Rainfall类中编写一个mutator方法,为你的双精度数组添加值。你的主要应该调用你的Rainfall类的方法来获得并显示总数/平均值/最多/最少。 在完整的课程中演示课程。 (不接受月降雨量数字的负数)

 import java.util.Scanner;
public class Hw5pr1
{
    public static void main(String[] args)
    {
        Scanner rain = new Scanner(System.in);
        double[] months = new double[12];
        for (int a = 0; 0<12; a++)
        {
            months[a]=rain.nextDouble();
            System.out.println(months[a]);
        }
        RainFall ds = new RainFall(months);
    }   
}


public class RainFall
{
    private double month;
    private double[] months1;
    private double average;
    private double largest;
    private double smallest;

    public RainFall(double[] months)
    {
        for (int b=0; b<12; b++)
        {
            months[b]=months1[b];
        }
    }


   public double total()
   {
        for (int a=0; a<11; a++)
        {
             double month = months1[a]+month;

        }
        return month;
   }
   public double average()
   {
        average=month/12;
        return average;
   }
   public double largest()
   {
       double largest = months1[0];
       for (int a=0; a<1; a++)
       {
           if (months1[a]>largest)
           {
               largest = months1[a];
           }
       }
   }
   public double smallest()
   {
       double smallest = months1[0];
       for (int a=0; a<1; a++)
       {
            if (months1[a]<smallest)
            {
                smallest = months1[a];
             }
        }
    }
}

1 个答案:

答案 0 :(得分:3)

因为你有一个无限循环:

//              vvvvvv
for (int a = 0; 0 < 12; a++)
{
}
RainFall ds = new RainFall(months);

编译器能够确定0 < 12始终为真。循环永远不会终止,因此无法访问它。我想你的意思是a < 12