我的代碼如下給我意想不到的輸出。 我想要做的是創建一個多維數組,然後在循環中用x,y,z的值填充它。但由於某種原因,它只填充所有元素中的「最大」值x,y,z。相反,它應該填充當前值。如果您取消註釋第一個System.out行,您會看到我實際需要的結果。我的multiDimentional陣列代碼無法正常工作
public class Test{
public static void main(String args[]){
int[][] a= new int[ 150 ][3];
int[] val = new int[3];
int increment =0;
for(int x=0; x<10; ++x){
for(int y=0; y<5; ++y){
for(int z=0; z<3; ++z){
val[0]=x; val[1]=y; val[2]=z;
a[ increment ]=val;
++increment;
//System.out.println(x+" "+y+" "+z+" "+ increment)
} } }// for
for(int s=0; s<increment; ++s){ System.out.println(a[ s ][0]+" "+ a[ s ][1]+" "+ a[ s ][2]+" "+ s); }
}//main
}//class
我的輸出:
9 4 4 0
9 4 4 1
9 4 4 increment
預期輸出:
0 0 0 0
0 0 1 1
0 0 2 2
...
0 1 1 3
0 1 2 4
.
.
.
upto so on
我做了什麼錯?
不,在你的方法中,它只是遞增「增量」。我想要做的是x y z增量。 (增量只是看我在數組中的位置,這並不重要)因此,在我的循環中,x = 0,然後y = 0,然後z運行3次,然後x = 0 y = 1,z重新開始。 z達到3,然後y再次增加1。這繼續。最後y達到5,然後x增加1,依此類推。 –
請在++增量後立即添加此行,您將看到我想要的輸出:System.out.println(x +「」+ y +「」+ z +「」+ increment); –
您的預期產出是多少? –