java - 方法未正确显示

标签 java

以下代码中的方法“aboveAverage”未正确显示,我已尝试了一切。有人可以解释一下出了什么问题吗?

我的代码:

import java.util.*;
public class DailyCatch
{
  private int fishermanID, fisherID;
  private String dateOfSample, date;
  private double[] fishCaught = new double[10];
  private int currWeight = 0;
  private String summary;
  private double average;
  private int aboveAvg;

  public DailyCatch() {  }

  public DailyCatch (int fishermanID, String dateOfSample)
  {
    fisherID = fishermanID;
    date = dateOfSample;
  }

  public DailyCatch (int fishermanID, String dateOfSample, String weight)
  {
    this(fishermanID, dateOfSample);
    readWeights(weight);
  }

  public void addFish(double weight)
  {
    if (currWeight > 10)
    {
       // array full
    }
    else
    {
      fishCaught[currWeight] = weight;
      currWeight += 1;  // update current index of array
    }
  }

  private void readWeights(String weightsAsString) 
  {
    String[] weightsRead = weightsAsString.split("\\s+");
    for (int i = 0; i < weightsRead.length; i++) 
    {
       this.addFish(Double.parseDouble(weightsRead[i]));
    }
  } 

  public String toString()
  {
    return "Fisherman ID: " + fisherID + "\nDate:" + date + "\nFish Caught with Weights: " + Arrays.toString(fishCaught);
  }

  public void printWeights()
  {
     for (int i = 0; i < fishCaught.length; i++)
     {
          System.out.println(fishCaught[i]);
     } 
  }

  public double averageWeight()
  {
      double sum = 0;
     double count = 0;
     for (int i = 0; i < fishCaught.length; i++)
     {
          if (fishCaught[i] != 0)
          {
                  sum += fishCaught[i];
              count += 1;
                  average = sum/count;
          }
 }
  return average;
   }

    public String getSummary()
{   int storyTellerCount = 0;
    int keeperCount = 0;
    int throwBackCount = 0;
    for (int i = 0; i < fishCaught.length; i++)
    {
        if (fishCaught[i] > 5)
        {
            storyTellerCount++;
        }

        else if (fishCaught[i] >=1 && fishCaught[i] <= 5)
        {
            keeperCount++;
        }

        else if (fishCaught[i] < 1 && fishCaught[i] > 0)
        {
            throwBackCount++;
        }

    }  String summary = ("\nStoryteller - " + storyTellerCount+ "\nKeeper - " + keeperCount + "\nThrowback - " + throwBackCount);

        return summary;
}

public int aboveAverage()
{   
    int greatAvgCount = 0;
    for (int i = 0; i < fishCaught.length; i++)
    {
        if (fishCaught[i] > average)
        {
            aboveAvg = greatAvgCount++;
        }
    }
    return aboveAvg;
}   

}

测试代码:

public class BigBass
{
public static void main (String[]args)
{
//Part 1
DailyCatch monday1 = new DailyCatch(32, "4/1/2013", "4.1 5.5 2.3 0.5 4.8 1.5");
System.out.println(monday1);

//Part 2
DailyCatch monday2 = new DailyCatch(44, "4/1/2013");
System.out.println(monday2);
monday2.addFish(2.1);
monday2.addFish(4.2);
System.out.println(monday2);

//Part 3
System.out.println("\n\nSUMMARY OF FISHERMAN 32");
System.out.println(monday1.getSummary());

//Part 4
double avg = monday1.averageWeight();
System.out.printf("\nThere are %d fish above the average weight of %.1f.", monday1.aboveAverage(), avg);
}
}

我只需要让第 4 部分在这里工作即可。它的作用是返回捕获了 2 条高于平均水平的鱼,而我知道应该是 3 条。平均值是 3.1。

最佳答案

一个简单的错误。

public int aboveAverage() {   
    int greatAvgCount = 0;
    for (int i = 0; i < fishCaught.length; i++) {
        if (fishCaught[i] > 3.1) {
            greatAvgCount++; // no 'return'
        }
    }
    return greatAvgCount;
} 

关于java - 方法未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16339101/

相关文章:

java - 不同的手机/不同的图像质量

java - 返回 Activity 的 fragment

java - Eclipse IDE 无法识别 mysql 驱动程序

java - Thymeleaf 3.0 Spring Boot + Security 集成不起作用

Java 安全 InvalidKeyException ODL Netconf TestTool

java - 如何使用 twitter4j 获取更多推文并解析为 json?

java - 对于大量查询,jdbcTemplate.batchUpdate() 出现问题

java - 调用 jar 文件时指定 JVM 参数?

java - JPA 中乐观锁定的表索引/pk

java - Kubernetes:如何使用 K8 的 API 从代码中访问当前正在运行的 pod 的标签值?