gpt4 book ai didi

java - 在java中通过方法使用数组,返回数组

转载 作者:行者123 更新时间:2023-11-30 08:44:17 26 4
gpt4 key购买 nike

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

我快完成了。我需要修复我遇到的三个错误:在 treeReport+= line 上,我收到错误:"cannot find symbol"for minSeeds, totalSeedstotalTrees。我不能将它们声明为类的成员,也不能在它们之前使用 static。我也只能使用一个类。

import javax.swing.JOptionPane;

public class TreeCalc {

public static void main(String[] args) {
String[] treeTypes = new String[] {"Fir", "Pine", "Spruce"};
int[] desiredYield = new int[treeTypes.length];
double[] decayRate = new double[] {0.07, 0.12, 0.08};
desiredYield = getYield(decayRate, desiredYield, treeTypes);
getCalculate(decayRate, desiredYield, treeTypes);
printMessage(decayRate, desiredYield, treeTypes);
}

//Asks user to input # of trees for each tree type
public static int[] getYield(double[] decayRate, int[] desiredYield, String[] treeTypes) {
int index = 0;
for (int i = 0; i < treeTypes.length; i++) {
try {
desiredYield[index] = Integer.parseInt(JOptionPane.showInputDialog("Please enter your desired yield for: " + treeTypes[i]));
} catch (NumberFormatException e) {
desiredYield[index] = 0;
JOptionPane.showMessageDialog(null, "Error: Please enter your desired yield for " + treeTypes[i]);
}
if (desiredYield[index] <= 0) {
JOptionPane.showMessageDialog(null, "Error: Please enter your desired yield for " + treeTypes[i]);
} else {
index++;
}
}
return desiredYield;
}

//Calculates totals and minimums
public static int[] getCalculate(double[] decayRate, int[] desiredYield, String[] treeTypes) {
int totalSeeds = 0;
int totalTrees = 0;
int minSeeds = 0;
int index = 0;
for (int i = 0; i < treeTypes.length; i++) {
minSeeds += (desiredYield[index] * (decayRate[index] * 7)) + desiredYield[index];
totalSeeds += minSeeds;
totalTrees += desiredYield[index];
}
return desiredYield;
}

public static void printMessage(double[] decayRate, int[] desiredYield, String[] treeTypes) {
getCalculate(decayRate, desiredYield, treeTypes);
String treeReport = "Tree Type | Minimum Seeds | Total Seeds | Total Trees ";
for (int i = 0; i < treeTypes.length; i++) {
treeReport += "\n" + treeTypes[i] + " " + minSeeds + " " + totalSeeds + " " + totalTrees;
}
JOptionPane.showMessageDialog(null, treeReport);
}
}

最佳答案

不是从 getCalculate() 返回 desiredYield int 数组,您根本没有在 printMessage() 中使用它,您可以准备并返回一个更有意义的 int 数组,即包含 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);
}

关于java - 在java中通过方法使用数组,返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33861978/

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