Java 创建方法以返回数组值的平均值

Java 创建方法以返回数组值的平均值,java,Java,我试图在一个类中创建一个静态方法,该类被传递一个数组对象数组,并返回数组中对象的平均值 public static double calcAverage() { int sum = 0; for (int i=0; i < people.length; i++) sum = sum + people[i]; double calcAverage() = sum / people.length System.out.println(people.

我试图在一个类中创建一个静态方法,该类被传递一个数组对象数组,并返回数组中对象的平均值

public static double calcAverage() {
  int sum = 0;
  for (int i=0; i < people.length; i++)
            sum = sum + people[i];
  double calcAverage() = sum / people.length
     System.out.println(people.calcAverage());
}
公共静态双平均值(){
整数和=0;
for(int i=0;i
代码出现编译错误,但我的方向正确吗

public static double calcAverage() {
  int sum = 0;
  for (int i=0; i < people.length; i++)
            sum = sum + people[i];
  double calcAverage() = sum / people.length
     System.out.println(people.calcAverage());
}

(声明新变量的正确方法)

改变

  double calcAverage() = sum / people.length
     System.out.println(people.calcAverage());

(如果要打印调用函数的结果,应始终在函数外部执行,例如在调用函数并存储返回结果后在
main
中执行)

因此,我们:

public static double calcAverage() {
  int sum = 0;
  for (int i=0; i < people.length; i++)
  {
       sum = sum + people[i];
  }
  double average = sum / (double)people.length;
  return average;
}
公共静态双平均值(){
整数和=0;
for(int i=0;i

(声明新变量的正确方法)

改变

  double calcAverage() = sum / people.length
     System.out.println(people.calcAverage());

(如果要打印调用函数的结果,应始终在函数外部执行,例如在调用函数并存储返回结果后在
main
中执行)

因此,我们:

public static double calcAverage() {
  int sum = 0;
  for (int i=0; i < people.length; i++)
  {
       sum = sum + people[i];
  }
  double average = sum / (double)people.length;
  return average;
}
公共静态双平均值(){
整数和=0;
for(int i=0;i
您的结束。不过我看到了一些错误

首先你的总和=总和+人[i]

people[i]返回的对象不是整数,因此将对象添加到整数中是行不通的


其次,您正在calcAverage方法内调用calcAverage(),这可能不是您想要做的。这样做被称为递归,但我认为您应该在calAverage()之外调用方法。

结束语。不过我看到了一些错误

首先你的总和=总和+人[i]

people[i]返回的对象不是整数,因此将对象添加到整数中是行不通的

其次,您正在calcAverage方法内调用calcAverage(),这可能不是您想要做的。这样做被称为递归,但我认为您应该在calAverage()之外调用方法。

//将人员作为参数传递
公共静态双平均值(整数[]人){
//重要提示:这必须是一个double,否则您将整数除以整数,您将得到错误的答案
双和=0;
for(int i=0;i
//将人员作为参数传递
公共静态双平均值(整数[]人){
//重要提示:这必须是一个double,否则您将整数除以整数,您将得到错误的答案
双和=0;
for(int i=0;i
一旦编译完成,它看起来会有一些无限递归。将
println
移动到其他地方。在
main
maybe.double calcAverage()中,声明一个变量double avgVal=sum/people.length;打印avgValHow/people声明在哪里?看起来一旦编译它,它将有一些无限递归。将
println
移动到其他地方。在
main
maybe.double calcAverage()中,声明一个变量double avgVal=sum/people.length;然后打印avgValHow/人员在哪里申报?嗯。。由于某种原因,它仍然不接受。。想弄明白why@aiuna您收到的确切错误消息和行号是多少?请解决它,非常感谢@aiuna很酷,别忘了我添加的
(double)
强制转换,如果你不这样做,它将计算为整数除法,将小数点舍入现有值mm。。由于某种原因,它仍然不接受。。想弄明白why@aiuna您收到的确切错误消息和行号是多少?请解决它,非常感谢@aiuna酷,别忘了我加的
(double)
,如果你不做,它会计算成整数除法,将小数点舍入出来。有必要对我的部分进行修正,非常感谢,也有必要对我的部分进行修正,非常感谢