Java数组错误(2d数组)

时间:2013-03-09 13:56:27

标签: java arrays simulator indexoutofboundsexception

我在运行鹿模拟器时遇到错误 这是代码

        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();
                        }
                    }
                }
            }
        }
    }

主要问题在于comparedeergrass方法。 注意它在编译时有效,但在cmd窗口中我输入updatedeer时会产生错误。创建数组索引超出范围的错误。

1 个答案:

答案 0 :(得分:0)

grasspos是一个长度为3的数组。您调用(deerpos[1] <= grasspos[3]),我猜,它应该是(deerpos[1] <= grasspos[2]),因为grasspos[3]需要一个数组长度为4。