Как добавить переменную в массив - PullRequest
0 голосов
/ 23 ноября 2011

Я пытаюсь установить значение в массиве для переменной. Вот мой код:

//init the array as a float
//I have tried to put a value in the brackets, but it returns a different error.
//I initialized it this way so I could call it from other methods
private float[] map;

// generate a "seed" for the array between 0 and 255
float x = generator.nextInt(256);
int n = 1;
// insert into the first 25 slots
while(n <= 25) {
    // here's my problem with this next line
    map[n] = x;
    double y = generator.nextGaussian();
    x = (float)Math.ceil(y);
    n = n + 1;
}

Я пометил строку своей ошибкой, возвращается ошибка: «выброшено необработанное исключение ...». Что я делаю неправильно??? Заранее спасибо.

EDIT -----

Вот и все исключение:

    Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]

Я использую y для генерации случайного гауссиана, затем преобразовываю его в значение с плавающей точкой и меняю x на это значение с плавающей точкой

Я почти уверен, что это та строка, потому что это то, что сказал мне мой компилятор.

1 Ответ

6 голосов
/ 23 ноября 2011

Я предполагаю, что вы получите одно из двух исключений:

  1. Вы получаете NullPointerException, потому что инициализировали карту для null. Назначьте ненулевое значение, используя, например:

    private float[] map = new float[25];
    
  2. Вы получаете IndexOutOfBoundsException, потому что вы используете индексацию на основе 1 вместо индексации на основе 0.

Изменить это:

int n = 1;
while(n <= 25) {
    // etc..
    n = n + 1;
}

К этой for петле:

for (int n = 0; n < 25; ++n) {
    // etc..
}
...