Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java将2D数组与数字进行比较给出了异常_Java_Arrays_Multidimensional Array - Fatal编程技术网

Java将2D数组与数字进行比较给出了异常

Java将2D数组与数字进行比较给出了异常,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我试图将2D数组与数字进行比较,但它引发了一个异常 代码 import org.newdawn.slick.Color; 公共班机{ 公共静态int[]map={{{0,2,1,3,4,1,1,3,4,1,3,5,1}, {1, 2, 1, 3, 4, 1, 1, 3, 4, 1, 3, 5, 1}, {2, 2, 1, 3, 4, 1, 1, 3, 4, 1, 3, 5, 1}, {3, 2, 1, 3, 4, 1, 1, 3, 4, 1, 3, 5, 1}, {4, 2, 1, 3, 4,

我试图将2D数组与数字进行比较,但它引发了一个异常

代码

import org.newdawn.slick.Color;
公共班机{
公共静态int[]map={{{0,2,1,3,4,1,1,3,4,1,3,5,1},
{1, 2, 1, 3, 4, 1, 1, 3, 4, 1, 3, 5, 1},
{2, 2, 1, 3, 4, 1, 1, 3, 4, 1, 3, 5, 1},
{3, 2, 1, 3, 4, 1, 1, 3, 4, 1, 3, 5, 1},
{4, 2, 1, 3, 4, 1, 1, 3, 4, 1, 3, 5, 1},
{5, 2, 1, 3, 4, 1, 1, 3, 4, 1, 3, 5, 1},
{6, 2, 1, 3, 4, 1, 1, 3, 4, 1, 3, 5, 1},
{7, 2, 1, 3, 4, 1, 1, 3, 4, 1, 3, 5, 1}};
公共静态void main(字符串参数[]){
int I=0;
int II=0;
对于(int y=0;y<7;y++){
对于(int x=0;x<11;x++){
if(map[x][y]==0){
g、 setColor(Color.blue);
g、 fillRect(I,II,100100);
}
if(map[x][y]==1){
g、 setColor(颜色为橙色);
g、 fillRect(I,II,100100);
}
if(map[x][y]==2){
g、 setColor(Color.white);
g、 fillRect(I,II,100100);
}
if(map[x][y]==3){
g、 setColor(Color.red);
g、 fillRect(I,II,100100);
}
if(map[x][y]==4){
g、 setColor(Color.green);
g、 fillRect(I,II,100100);
}
if(map[x][y]==5){
g、 setColor(颜色为灰色);
g、 fillRect(I,II,100100);
}
I=x*100;
I=y*100;
}
}
}
}
它引发的异常是
java.lang.ArrayIndexOutOfBoundsException:8

这适用于裸骨平铺贴图系统,如果要测试这一点,需要使用slick2D并将其放入渲染循环。

这是因为您试图访问行
8
,并且您只有最大位置
7

请记住,行和列的索引从位置0开始,以长度-1结束。

array[rows][columns]
此外,您必须记住数组的第一个位置,在您的例子中,
x
,是行,
y
是列。

array[rows][columns]
因此,您必须更改循环中变量的顺序。像这样:

for(int x = 0; x < map.length; x++){

    for(int y = 0; y < map[x].length; y++){
for(int x=0;x
代码的其余部分可以与上面的代码类似


我希望它会对您有所帮助!

这是因为您正在尝试访问行
8
,并且您只有
7
的最大位置

请记住,行和列的索引从位置0开始,以长度-1结束。

array[rows][columns]
此外,您必须记住数组的第一个位置,在您的例子中,
x
,是行,
y
是列。

array[rows][columns]
因此,您必须更改循环中变量的顺序。如下所示:

for(int x = 0; x < map.length; x++){

    for(int y = 0; y < map[x].length; y++){
for(int x=0;x
代码的其余部分可以与上面的代码类似


我希望它会对您有所帮助!

这是因为您正在尝试访问行
8
,并且您只有
7
的最大位置

请记住,行和列的索引从位置0开始,以长度-1结束。

array[rows][columns]
此外,您必须记住数组的第一个位置,在您的例子中,
x
,是行,
y
是列。

array[rows][columns]
因此,您必须更改循环中变量的顺序。如下所示:

for(int x = 0; x < map.length; x++){

    for(int y = 0; y < map[x].length; y++){
for(int x=0;x
代码的其余部分可以与上面的代码类似


我希望它会对您有所帮助!

这是因为您正在尝试访问行
8
,并且您只有
7
的最大位置

请记住,行和列的索引从位置0开始,以长度-1结束。

array[rows][columns]
此外,您必须记住数组的第一个位置,在您的例子中,
x
,是行,
y
是列。

array[rows][columns]
因此,您必须更改循环中变量的顺序。如下所示:

for(int x = 0; x < map.length; x++){

    for(int y = 0; y < map[x].length; y++){
for(int x=0;x
代码的其余部分可以与上面的代码类似


我希望它会对您有所帮助!

它给了您什么例外?变量I的定义和用途是什么?您应该使用
map.length
map[x].length
不是绝对值,而是提供了一个演示您的问题的示例。这不是一个代码转储,而是您正在做的一个示例,它突出了您的问题。这将减少混乱并更好地响应感谢您的输入各位,请查看编辑。它给您带来了什么异常?这是什么e变量I的定义和用途?应使用
map.length
map[x].length
不是绝对值,而是提供了一个演示您的问题的示例。这不是一个代码转储,而是您正在做的一个示例,它突出了您的问题。这将减少混乱并更好地响应感谢您的输入各位,请查看编辑。它给您带来了什么异常?这是什么e变量I的定义和用途?您应该使用
map.length
map[x].length
而不是绝对值来说明您的问题。这不是代码转储,而是您正在做的一个示例,它突出了