gpt4 book ai didi

java - 语法错误以及为什么会出现这些错误?

转载 作者:行者123 更新时间:2023-12-02 09:20:34 25 4
gpt4 key购买 nike

我正在为我的 Java 类解决一个问题,涉及获取一年中的总降雨量、平均降雨量、最少降雨量和最多降雨量。我一生都无法弄清楚我做错了什么。我遇到语法错误,但不太明白原因。

import java.util.Scanner;
public class Rainfall {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);

final int ttlMonth = 12; // for total months , which will always be 12//
double[] mRain = new double[ttlMonth]; //mRain for monthly rain//
int i = 0; //for use in the array//
double ttlRain; //total rain//
double avgRain; //average rain//
double maxRain; //most rain//
double minRain; //least rain//

System.out.println("Enter the monthly rain fall amount: ");


for(i = 0; i < ttlMonth; i++){

do{
System.out.print("Month " + (i+1) + ": ");
mRain[i] = scnr.nextDouble();
}
while(mRain[i] < 0);
}
//tTl for total//
ttlRain(double[] array) {
double tTl = 0;
for(i = 0; i < array.length; i++){
tTl += array[i];
}
ttlRain = tTl;
}
//aVg for average//
avgRain(double[] array) {
double aVg = 0;
aVg = ttlRain(array)/array.length;
}

//mAx for the most rainfall//
maxRain(double[] array) {
double mAx = 0;
for (i = 0; i < array.length; i++){
if(array[i] > mAx){
mAx = array[i];
}
}

}
//mIn for the least amount of rainfall//
minRain(double[] array) {
double mIn = array[0];
for(i = 0; i < array.length; i++){
if(array[i] < mIn){
mIn = array[i];
}
}

}
System.out.println("The yearly sum of rain: " + ttlRain);
System.out.println("The average ammount of rain: " + avgRain);
System.out.println("The most amount of rain fall: " + maxRain);
System.out.println("The least amount of rain fall: " + minRain);
}
}

最佳答案

Java 语言的多个问题:

  1. 因为您正在执行静态函数,所以内部调用的所有函数也需要是静态的

示例,给出:

 static void a(){
b(); // does not compile
c(); // compiles
}

void b(){}
static void c(){}
  • 所有函数都需要声明返回类型,例如 void 或 double(根据您的情况)

  • 所有返回内容的函数都需要 return 关键字以及返回值。

  • 您不能在另一个函数内创建命名函数,但可以创建匿名 lambda 函数

  • 示例,给出:

        double avgRain(double[] array) { // declares a double return type
    return 9.0;
    }
    void print(double in) { // does not return anything. This is a voif function
    System.out.println(in)
    }
  • 为了调用函数,您需要传递所有必需的参数
  • 示例:

      double sum(double a,double  b){
    return a+b;
    }
    sum(); // does not compile
    sum(1.0,4.0); // compiles

    将上述更改应用到您的代码后,它可以编译并运行

    public class Rainfall {
    public static void main(String[] args) {
    Scanner scnr = new Scanner(System.in);

    final int ttlMonth = 12; // for total months , which will always be 12//
    double[] mRain = new double[ttlMonth]; //mRain for monthly rain//

    System.out.println("Enter the monthly rain fall amount: ");

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

    do {
    System.out.print("Month " + (i + 1) + ": ");
    mRain[i] = scnr.nextDouble();
    }
    while (mRain[i] < 0);
    }

    System.out.println("The yearly sum of rain: " + ttlRain(mRain));//5
    System.out.println("The average amount of rain: " + avgRain(mRain));//5
    System.out.println("The most amount of rain fall: " + maxRain(mRain));//5
    System.out.println("The least amount of rain fall: " + minRain(mRain));//5
    }

    //tTl for total//
    private static double ttlRain(double[] array) { // 1,2,3
    double tTl = 0;
    for (int i = 0; i < array.length; i++) {
    tTl += array[i];
    }
    return tTl;//4
    }

    //aVg for average//
    private static double avgRain(double[] array) { // 1,2,3
    return ttlRain(array) / array.length;
    }

    //mAx for the most rainfall//
    private static double maxRain(double[] array) { // 1,2,3
    double mAx = 0;
    for (int i = 0; i < array.length; i++) {
    if (array[i] > mAx) {
    mAx = array[i];
    }
    }
    return mAx;
    }

    //mIn for the least amount of rainfall//
    private static double minRain(double[] array) { // 1,2,3
    double mIn = array[0];
    for (int i = 0; i < array.length; i++) {
    if (array[i] < mIn) {
    mIn = array[i];
    }
    }
    return mIn;
    }
    }

    关于java - 语法错误以及为什么会出现这些错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58724276/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com