我对某段代码有一个非常奇怪的问题:
for(int r = 0; r<look[0].length; r++){
for(int cl = 0; cl<look.length; cl++ ){
placeChar(xI+cl, yI+r, look[cl][r]); // <-- ArrayIndexoOutOfBoundsException
}
}
我在假设
看[CL] [R]
是问题,但......这有什么可能吗?
因为r永远不会等于或大于外观[0]。长度和cl相同
和look.length
答案 0 :(得分:1)
您需要颠倒循环的顺序:
for(int cl = 0; cl<look.length; cl++ ){
for(int r = 0; r<look[cl].length; r++){
placeChar(xI+cl, yI+r, look[cl][r]);
}
}
答案 1 :(得分:1)
如果我理解你,你应该
look[cl].length
代替look[0].length
代码:
for(int cl = 0; cl<look.length; cl++ ){
for(int r = 0; r<look[cl].length; r++){
placeChar(xI+cl, yI+r, look[cl][r]);
}
}