对于我的程序,我必须创建一堆方法,但我坚持启动它。基本上是一个存储树木种类和种子数量的程序。我有一个数组中的树列表,并希望将每个树的种子数放在一个并行数组中,我觉得我采取了正确的步骤,但是没有真正得到逻辑正确。
import javax.swing.JOptionPane;
public class seedFarmer {
public static void main(String[] args) {
}
public static int getNumEachTree() {
String[] treeTypes = {"Fir" , "Pine" , "Spruce"};
int[] numTrees = new int[treeTypes.length];
int numofTrees = getNumEachTree();
for (int index = 0; index < numTrees.length; index++) {
numTrees[index] = Integer.parseInt(JOptionPane.showInputDialog("Enter the number of seeds you want to plant for: " + treeTypes[index]));
}
return numTrees;
}
}
答案 0 :(得分:0)
你的主要问题在于:
public static int getNumEachTree() {
String[] treeTypes = {"Fir" , "Pine" , "Spruce"};
int[] numTrees = new int[treeTypes.length];
int numofTrees = getNumEachTree(); <--HERE
你正在调用getNumEachTree()导致一个永远不会结束的递归习惯。该函数将永远不会停止调用自身,因为它没有检查是否自己调用,因此将永远循环。
你也从不使用numofTrees,为什么要用它来破解你的代码?我认为它应该是返回值?也许你打算从main调用该函数?当你应该返回一个int而不是一个int数组时,你将返回numTrees。
我不明白这段代码的目的是什么,只是一些语法指出。你的逻辑似乎没问题。