【问题标题】:Having some trouble with passing a array传递数组时遇到一些麻烦
【发布时间】:2014-11-11 18:28:41
【问题描述】:

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

编写一个 Rainfall 类,将 12 个月的每个月的总降雨量存储到一个双精度数组中。该程序应具有返回以下内容的方法:

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

要求用户在您的主目录中输入 12 个值。在 Rainfall 类中编写一个 mutator 方法,将值添加到双精度数组。您的 main 应该调用 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];
             }
        }
    }
}

【问题讨论】:

    标签: java arrays methods


    【解决方案1】:

    因为你有一个无限循环:

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

    编译器能够确定0 &lt; 12 将始终为真。循环将永远不会终止,所以在它无法访问之后。我猜你的意思是a &lt; 12

    【讨论】:

    • 谢谢!真不敢相信我错过了我现在一切正常。
    • 很高兴为您提供帮助。如果您觉得我的回答有帮助,您可以accept it
    猜你喜欢
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    相关资源
    最近更新 更多