Mein Code unten gibt mir eine unerwartete Ausgabe. Was ich versuche, ist ein multidimensionales Array zu erstellen und es dann mit Werten von x, y, z innerhalb einer Schleife zu füllen. Aber aus irgendeinem Grund füllt es nur den "maximalen" Wert von x, y, z in allen Elementen. Stattdessen sollte es den aktuellen Wert füllen. Wenn Sie die erste Zeile von System.out auskommentieren, sehen Sie das Ergebnis, das ich tatsächlich möchte.Mein multidimensionaler Array-Code funktioniert nicht richtig
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
meine Ausgabe:
9 4 4 0
9 4 4 1
9 4 4 increment
erwartete Ausgabe:
0 0 0 0
0 0 1 1
0 0 2 2
...
0 1 1 3
0 1 2 4
.
.
.
upto so on
Was habe ich falsch gemacht?
Nein, in Ihrer Methode wird nur das "Inkrement" erhöht. Was ich versuche, ist x y z Inkrement. (Inkrement ist nur um zu sehen, wo ich im Array bin. Das ist nicht wichtig) Also in meiner Schleife, x = 0, dann y = 0, dann läuft z 3 mal, dann x = 0 y = 1 und z beginnt von vorne. z erreicht 3, dann wird y erneut um 1 erhöht. Das geht weiter. Schließlich erreicht y 5, dann wird x um 1 erhöht und so weiter. –
Bitte fügen Sie diese Zeile bald nach ++ Inkrement hinzu und Sie werden die gewünschte Ausgabe sehen: System.out.println (x + "" + y + "" + z + "" + Inkrement); –
Was ist Ihre erwartete Ausgabe? –