【发布时间】:2026-02-04 22:20:02
【问题描述】:
运行 Deer Simulator 时出现错误 这是代码
public void comparegrassDeer()
{
int[] grasspos = new int[3];
int[] deerpos = new int[2];
for (int i = 0;i < aog; ++i)
{
grasspos = g[i].getpos();
for (int j = 1; i <= aod;++i)
{
deerpos = d[j].getpos();
if ((deerpos[0] >= grasspos[0]) && (deerpos[0] <= grasspos[1]) && (deerpos[1] >= grasspos[2]) &&(deerpos[1] <= grasspos[3]))
{
if (g[i].checkFood() != 0)
{
g[i].foodLoss();
}
else
{
d[j].hunger();
}
}
}
}
}
}
主要问题在于比较草方法。 请注意,它在编译时有效,但在我在 cmd 窗口中键入 updatedeer 时会产生错误。创建数组索引越界错误。
【问题讨论】:
-
添加堆栈跟踪..
-
请为您的班级名称使用班级名称约定。还有太多可能与问题无关的代码。尝试仅包含您认为导致问题的代码以及堆栈跟踪。
-
并尊重 Java 命名约定。类以大写字母开头。变量是驼峰式的。
-
必须包含所有代码。不,你没有。阅读SSCCE,点击“编辑”开始删除代码
-
会不会像这个错字一样简单:
deerSin.createDeer(501, 1);可能必须是deerSim.createDeer(501, 1);?
标签: java arrays simulator indexoutofboundsexception