提示:http://puu.sh/lvdIG/404ebfba03.png
我如此接近完成。我需要修正三个错误:在treeReport+= line
上,我收到错误:“找不到符号”minSeeds
,totalSeeds
和{{1 }}。我不能将它们声明为类的成员,并且我不能在它们之前使用static。我也只能使用一个班级。
totalTrees
答案 0 :(得分:2)
您可以准备并返回一个更有意义的int数组,而不是从desiredYield
返回getCalculate()
int数组,而不是printMessage()
minSeeds
,totalSeeds
和totalTrees
。然后在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并返回它,以便稍后使用它。