在java中使用带有方法的数组,返回数组

时间:2015-11-23 00:23:02

标签: java arrays

提示:http://puu.sh/lvdIG/404ebfba03.png

我如此接近完成。我需要修正三个错误:在treeReport+= line上,我收到错误:“找不到符号minSeedstotalSeeds和{{1 }}。我不能将它们声明为类的成员,并且我不能在它们之前使用static。我也只能使用一个班级。

totalTrees

2 个答案:

答案 0 :(得分:2)

您可以准备并返回一个更有意义的int数组,而不是从desiredYield返回getCalculate() int数组,而不是printMessage() minSeedstotalSeedstotalTrees。然后在printMessage()

中使用它

有了这个,你不需要将这些变量声明为类级别或静态。这就是你的要求。

我已在我的回答代码段中使用//Updated code...对已更新的代码进行了评论,以便您轻松参考。

使用int数组,您需要使用基于索引的方法来访问数组,如果您想要更具可读性,那么替代可以准备并返回HashMap

   public static int[] getCalculate(double[]decayRate, int[]desiredYield, String[]treeTypes){
  int totalSeeds =0;
  int totalTrees=0;
  int minSeeds=0;      
  int index=0;
  int[] finalResult = new int[3];  //Updated code...
  for(int i=0; i<treeTypes.length;i++){
      minSeeds+=(desiredYield[index] * (decayRate[index]*7))+desiredYield[index];
      totalSeeds+=minSeeds;
      totalTrees+=desiredYield[index];

      }
     finalResult[0] = minSeeds; //Updated code...
     finalResult[1] = totalSeeds; //Updated code...
     finalResult[2] = totalTrees; //Updated code...
   return finalResult; //Updated code...
}

   public static void printMessage(double[]decayRate, int[]desiredYield, String[]treeTypes){
   finalResult = getCalculate(decayRate, desiredYield, treeTypes); //Updated code...

   String treeReport = "Tree Type | Minimum Seeds | Total Seeds | Total Trees ";
   for(int i=0; i<treeTypes.length; i++){
    treeReport += "\n"+treeTypes[i] + " " + finalResult[0] + " " + finalResult[1] + " " + finalResult[2]; //Updated code...
   }
   JOptionPane.showMessageDialog(null, treeReport);
  }

答案 1 :(得分:0)

您在getCalculate中声明totalSeeds,totalTrees和minSeeds,因此当然无法找到这些变量。 getCalculate是否在所有desiredYield中都发生了变化?如果不是,而不是返回这个,你应该创建一个列表,你可以在其中放入totalSeeds,totalTrees和minSeeds并返回它,以便稍后使用它。