java中Rainsion程序的输出错误

java中Rainsion程序的输出错误,java,arrays,Java,Arrays,我写了一个关于计算一年平均降雨量的程序,给了我最高和最低的降雨量,但是我得到了一个错误,我无法修复它 这是我的主要代码:` public class Rainfall { //field private double [] rain; public void Rainfall (double [] array) { rain = new double [array.length] ; for (int i=0; i < array.length ; i++)

我写了一个关于计算一年平均降雨量的程序,给了我最高和最低的降雨量,但是我得到了一个错误,我无法修复它

这是我的主要代码:`

public class Rainfall {

//field 
private double [] rain;

public void Rainfall (double [] array) {

    rain = new double [array.length] ; 

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

        rain [i] = array [i];   
}

//Methods
public double getTotal() {

    double total = 0;

    for ( double r : rain)

total +=r;
    return total;

}

public double getAverage () {

    double a = getTotal () / rain.length;

    return a;
}

public double getHighest () { 

    double highest = rain [0];

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

        if (rain [i] > highest) ;
        highest = rain [i];
}
    return highest;         
}

public double getLowest () {

    double lowest = rain [0];

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

        if (rain [i] < lowest) ;

        lowest = rain [i];
    }
    return lowest;
}

}
公共类降雨{
//场
私人双[]雨;
公共空隙降雨(双[]阵列){
rain=新的双精度[array.length];
for(int i=0;i最高);
最高=雨[i];
}
回报最高;
}
公共双最低(){
双最低=降雨量[0];

对于(int i=0;i删除if行末尾的分号。这会导致if在为true时执行空语句。然后无论发生什么情况,下一行始终执行。

删除if行末尾的分号。这会导致if在为true时执行空语句。然后下一行始终为exe无论发生什么情况都会被切割。

公共空间降雨(双[]阵列)
不是构造函数。构造函数不应该有任何返回类型,这包括
void
。谢谢你,我修复了错误,但你能帮我处理其他部分吗?@PM77-1///我得到了这个输出:总降雨量是561.00平均值是46.75最高降雨量是99.00最低降雨量是11.00我想知道应该怎么做我写到,输出中的程序可以说哪个月的降雨量最高和最低
public void raining(double[]数组)
不是构造函数。构造函数不应该有任何返回类型,这包括
void
。谢谢你,我修复了错误,但你能帮我处理其他部分吗?@PM77-1///我得到了这个输出:总降雨量是561.00平均值是46.75最高降雨量是99.00最低降雨量是11.00我想知道应该怎么做我写输出中的程序可以说哪个月的降雨量最高和最低谢谢,我修正了错误,但是你能帮我处理其他部分吗?///我得到了这个输出:总降雨量是561.00,平均值是46.75,最高降雨量是99.00,最低降雨量是11.00,我想知道我应该写什么输出中的e程序可以指出哪个月的降雨量最高和最低。您可以做两件事:添加public int getHighestMonth(),它模仿getHighest()的逻辑,但返回i而不是rain[i],或者我更喜欢的方法是在highMonth、lowMonth中添加类成员,并将它们设置在getHighest和getLowest中。在这种情况下,我还将添加成员long highest、lowest;并将getHighest()更改为void calculateHighest();Ben非常感谢您的帮助,但我还是有点困惑。您可以编写getHighestMonth()吗我的代码?谢谢你,伙计,我修复了错误,但是你能帮我处理其他部分吗?///我得到了这个输出:总降雨量是561.00,平均值是46.75,最高降雨量是99.00,最低降雨量是11.00,我想知道我应该写些什么,输出中的程序可以说哪个月的降雨量最高,哪个月的降雨量最低你可以做两件事:添加public int getHighestMonth(),它模仿getHighest()的逻辑,但返回i而不是rain[i],或者我更喜欢的方法是添加int highMonth、lowMonth类成员;并将它们设置在getHighest和getLowest内部。在这种情况下,我还将添加long highest、lowest成员;并更改getHighest()取消calculateHighest();Ben我真的很感谢你的帮助,但我还是有点困惑。你能帮我写getHighestMonth()代码吗?
`
  import java.util.Scanner;
  import java.text.DecimalFormat;


  public class RainFallDemo { 

    public static void main (String [] args ) throws NullPointerException
 { 


        final int year1 = 12;

        double [] rains = new double [year1];

        getData (rains) ;

        Rainfall rainfallData = new Rainfall ();

        DecimalFormat values = new DecimalFormat ("#0.00") ;

        System.out.println("The total rain is" + values.format(rainfallData.getTotal()));
        System.out.println("The average is " + values.format (rainfallData.getAverage()));
        System.out.println("The highest rain is " + values.format (rainfallData.getHighest()));
        System.out.println("The lowest is " + values.format (rainfallData.getLowest()));




    }

    public static void getData (double [] array) {

        Scanner keyboard = new Scanner (System.in) ;

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

            System.out.println ("what was the amont of rain for month  " + (i + 1) + "?");

            array [i] = keyboard.nextDouble ();

            while (array[i] < 0 )
            {
                System.out.print ( " Invalid input. You entered a negative number. Enter a" + 
            "value that is greater than zero");
            array [i] = keyboard.nextDouble ();

            }
    }
}
}`