0

如果一个人有一组不同维度的二维数组,比如说:

float[][] P = new float[2][3];
float[][] B = new float[2][2];
float[][] A = new float[32][2];
float[] E = new float[2];

目前不持有任何价值观。

是否可以通过循环最大集体维度的索引值(在这​​种情况下)来为数组的每个索引添加值:

for (int i=0; i<32; i++){
    for (int j=0; j<3; j++){
         //doSomething to (P[i][j]) if P has this index
         //doSomething to (B[i][j]) if B has this index
         //doSomething to (A[i][j]) if A has this index
         //doSomething to (E[i][j]) if E has this index         
    }
}

否则,必须有四个单独的循环!

谢谢你。

4

1 回答 1

1
for (int i=0; i<32; i++){
    for (int j=0; j<3; j++){
         if(i < 2)
           doSomething(P[i][j]);
         if(i < 2 && j < 2)
           doSomething(B[i][j]);
         if(j < 2)
           doSomething(A[i][j]);
         if(i == 0 && j < 2)
           doSomething(E[i][j]);         
    }
}

您需要该i == 0部分,E因为您只想修改所有内容一次,而不是 32 次。请注意,只B需要两个条件,因为其他条件由for循环强制执行。

于 2013-05-10T19:02:17.023 回答