我试图将数组中的值设置为变量。这是我的代码:
//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更改为该浮点值
我很确定这就是那条线,因为那是我的编译器告诉我的。
答案 0 :(得分:6)
我猜你得到两个例外之一:
您收到NullPointerException
因为已将地图初始化为null
。使用例如:
private float[] map = new float[25];
您获得的是IndexOutOfBoundsException
,因为您使用的是基于1的索引而不是基于0的索引。
改变这个:
int n = 1;
while(n <= 25) {
// etc..
n = n + 1;
}
到此for
循环:
for (int n = 0; n < 25; ++n) {
// etc..
}