处理多维数组
Processing multidimensional array
嘿,由于 println 语句中我的数组值出现 NullPointerException,我无法处理 运行 我的代码。
for (bx=0; bx<=7; bx++) {
for (by=0; by<=4; by++) {
rect(bx*BRICK_WIDTH, by*BRICK_HEIGHT, BRICK_WIDTH, BRICK_HEIGHT);
int[][] a = {{bx}, {by}};
}
println (a[bx][by]);
}
仅根据您 post 编写的代码,我不希望您得到 NullPointerException
。我希望你得到 The variable "a" does not exist
错误。
所以我猜你的草图顶部还有另一个 a
变量,如下所示:
int[][] a;
void draw(){
for (bx=0; bx<=7; bx++) {
for (by=0; by<=4; by++) {
rect(bx*BRICK_WIDTH, by*BRICK_HEIGHT, BRICK_WIDTH, BRICK_HEIGHT);
int[][] a = {{bx}, {by}};
}
println (a[bx][by]);
}
}
请注意,这就是 post MCVE 对您如此重要的原因,这样我们就不必猜测您的代码在做什么。
如果是这种情况,您的问题是因为 for
循环内的 int[][] a = {{bx}, {by}};
行声明了一个具有相同名称的 不同 变量.它没有触及 skethc 级别 a
变量。所以草图级 a
变量仍然具有默认值 null
,因此当您尝试使用它时 NullPointerException
。
另请注意,将 a
分配给 for
循环内的任何内容都没有多大意义。要了解原因,请考虑这个更简单的示例:
int x = 0;
for(int i = 0; i < 10; i++){
x = i;
}
println(x);
您会看到 x
变量只是 "keeps" 我们分配给它的最后一个值。数组也是如此。也许您打算设置数组的特定 index?
如果您仍然遇到问题,请 post MCVE。祝你好运。
嘿,由于 println 语句中我的数组值出现 NullPointerException,我无法处理 运行 我的代码。
for (bx=0; bx<=7; bx++) {
for (by=0; by<=4; by++) {
rect(bx*BRICK_WIDTH, by*BRICK_HEIGHT, BRICK_WIDTH, BRICK_HEIGHT);
int[][] a = {{bx}, {by}};
}
println (a[bx][by]);
}
仅根据您 post 编写的代码,我不希望您得到 NullPointerException
。我希望你得到 The variable "a" does not exist
错误。
所以我猜你的草图顶部还有另一个 a
变量,如下所示:
int[][] a;
void draw(){
for (bx=0; bx<=7; bx++) {
for (by=0; by<=4; by++) {
rect(bx*BRICK_WIDTH, by*BRICK_HEIGHT, BRICK_WIDTH, BRICK_HEIGHT);
int[][] a = {{bx}, {by}};
}
println (a[bx][by]);
}
}
请注意,这就是 post MCVE 对您如此重要的原因,这样我们就不必猜测您的代码在做什么。
如果是这种情况,您的问题是因为 for
循环内的 int[][] a = {{bx}, {by}};
行声明了一个具有相同名称的 不同 变量.它没有触及 skethc 级别 a
变量。所以草图级 a
变量仍然具有默认值 null
,因此当您尝试使用它时 NullPointerException
。
另请注意,将 a
分配给 for
循环内的任何内容都没有多大意义。要了解原因,请考虑这个更简单的示例:
int x = 0;
for(int i = 0; i < 10; i++){
x = i;
}
println(x);
您会看到 x
变量只是 "keeps" 我们分配给它的最后一个值。数组也是如此。也许您打算设置数组的特定 index?
如果您仍然遇到问题,请 post MCVE。祝你好运。