私のコードは予期せぬ出力を与えます。 私がやろうとしているのは、多次元配列を作成し、ループ内にx、y、zの値を設定することです。しかし何らかの理由で、すべての要素のx、y、zの「最大」値だけを塗りつぶします。代わりに、現在の値を埋める必要があります。最初のSystem.out行のコメントを外すと、実際に必要な結果が表示されます。私の多次元配列コードが正しく動作していません
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 + "" +増分); –
期待される出力は? –