Arrays 在二维字符数组上迭代

Arrays 在二维字符数组上迭代,arrays,exception,iteration,Arrays,Exception,Iteration,我对某段代码有一个非常奇怪的问题: 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 } } 对于(int r=0;r您需要颠倒循环的顺序: for(int cl = 0; cl<look.len

我对某段代码有一个非常奇怪的问题:

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
    }
}

对于(int r=0;r您需要颠倒循环的顺序:

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]);
    }
}

(int cl=0;cl如果我理解正确,你应该

  • 更改迭代器的顺序
  • 使用
    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]);  
    }
}
for(int cl=0;cl