数组超出索引错误?

时间:2011-05-11 23:21:20

标签: java arrays

我正在使用一些我通常不使用的新方法(random.nextInt()),所以非常感谢帮助。

  int[][] A = new int[100][100];
  private void room()
  {
    int xCo = random.nextInt(92);
    int yCo = random.nextInt(92);
    int xCoPLUS = random.nextInt(7);
    int yCoPLUS = random.nextInt(7);
    for(int across = xCo; across < across+xCoPLUS; across++) 
    {
      for(int vert = yCo; vert < vert+yCoPLUS; vert++)
      {
        A[vert][across] = 1;
      }
    }
  }

我在A [vert] [across] = 1行得到错误;

A [] []是100乘100。

谢谢你们!

2 个答案:

答案 0 :(得分:1)

我认为你的意思是:

for(int across = xCo; across < xCo+xCoPLUS; across++) 
{
   for(int vert = yCo; vert < yCo+yCoPLUS; vert++)
   {
      A[vert][across] = 1;
   }
}

请注意我对循环条件所做的更改,因为across < across + xCoPLUS将始终为真,至少在您获得整数溢出之前:)

答案 1 :(得分:0)

如果across < across+xCoPLUSvert < vert+yCoPLUS非零,则循环条件xCoPLUSyCoPlus将始终保持为真,因此您的循环将无限循环,从而走过终点数组。