-4

鹿のシミュレーターを実行するとエラーが発生しますここにコードがあります

        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と入力するとエラーが発生することに注意してください。範囲外エラーの配列インデックスを作成します。

4

1 に答える 1

0

grassposは長さ3の配列です。長さ4の配列が必要になるため、(deerpos[1] <= grasspos[3])これをと呼びます。(deerpos[1] <= grasspos[2])grasspos[3]

于 2013-03-09T14:29:57.850 に答える