gpt4 book ai didi

Java 将二维数组与数字进行比较时出现异常

转载 作者:行者123 更新时间:2023-12-01 22:16:42 24 4
gpt4 key购买 nike

我试图将二维数组与数字进行比较,但它抛出异常。

代码

import org.newdawn.slick.Color;

public class Main {

public static 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}};

public static void main(String args[]) {
int I = 0;
int II = 0;

for (int y = 0; y < 7; y++) {

for (int x = 0; x < 11; x++) {

if (map[x][y] == 0) {
g.setColor(Color.blue);
g.fillRect(I, II, 100, 100);
}
if (map[x][y] == 1) {
g.setColor(Color.orange);
g.fillRect(I, II, 100, 100);
}
if (map[x][y] == 2) {
g.setColor(Color.white);
g.fillRect(I, II, 100, 100);
}
if (map[x][y] == 3) {
g.setColor(Color.red);
g.fillRect(I, II, 100, 100);
}
if (map[x][y] == 4) {
g.setColor(Color.green);
g.fillRect(I, II, 100, 100);
}
if (map[x][y] == 5) {
g.setColor(Color.gray);
g.fillRect(I, II, 100, 100);
}
I = x * 100;
I = y * 100;
}
}
}
}

它抛出的异常是java.lang.ArrayIndexOutOfBoundsException: 8这是一个简单的瓦片 map 系统,如果你想测试它,你需要 slick2D 并且需要将它放入渲染循环中。

最佳答案

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

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

此外,您必须记住,在您的情况下,数组的第一个位置 x 是行,y 是列.

array[rows][columns]

所以你必须改变循环中变量的顺序。像这样:

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

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

其余代码可以像上面那样。

希望对你有帮助!

关于Java 将二维数组与数字进行比较时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30836176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com