Wie befüllt man zweidimensionale Arrays in java? (Siehe Foto)?
also ich hab 2D array erstellt mit 20 Zeilen und 2 Spalten und würde es gerne befallen ich würde gerne es so befallen bei Spalte 0 halt von 20 bis 0 runterzählen und bei spalte 1 halt umgekehrt von 1 bis 20 hochzählen nur wie geb ich das an bei der for schleife hab ich ja array2D[i][j] aber wie sag ich nun separat wie i gefüllt werden soll und wie j gefüllt werden soll und nicht beides zusammen. wer kennt sich aus?
Mit freundlichen Grüßen
3 Antworten
For i=20; i>0; i-- {
For j=0; j<Array.length; j++ {
Meinst du sowas?
andere Frage, hier wurde ein 10x10 array erstellt
und mit Zufallszahlen befüllt. aber ich versteh den sinn dahinter nicht beide for schleifen fangen bei 0 an, das heißt array[zeile0][zeile0] = eine Zufallszahl, dann weiter array[zeile1][spalte1] = eine Zufallszahl, so das geht bis 10 weiter dann ist es vorbei aber dann wären doch nur 10 Felder befüllt und nicht 100 verstehst du?? weil es geht ja von Zeile0 und spalte0 bis Zeile9 und spalte9 das heißt es werden nur 9 Felder (diagonal) befüllt der erst bleibt 0 doch das array ist trotzdem komplett befüllt ich check die Logik dahinter nicht
Mit freundlichen Grüßen
Du meinst so?
int[][] field = new int[20][2];
for (int i = 0, j = field.length; i < field.length; ++i, --j) {
field[i][0] = j;
field[i][1] = i + 1;
System.out.printf("%d %d%n", field[i][0], field[i][1]);
}
Die äußere Schleife läuft zehnmal. Je Durchlauf läuft in ihr wiederum eine Schleife, auch zehnmal. Um das bildlich gut nachvollziehen zu können, würde ich dir raten, dieses Beispiel einmal durchlaufen zu lassen. Vor (oder nach) der Zeile mit punkte... schreibst du dir noch eine Konsolenausgabe:
System.out.println(i + " " + j);
Schau dir das Ergebnis an - wie sich i in seinem Wert verändert und wie j.
also ist das gemeint hmm ich dachte das beide gleichzeitig laufen ahh haje java ist so kompliziert gut meinetwegen ich Machs danke
Ich glaube du versuchst das Array falsch anzuwenden. Die Deklaration
int[][] array = new int[20][2];
bedeutet, dass die Variable "array" 40 Werte beinhaltet, welche über entsprechende Indizes angesprochen werden können. Der erste Index geht von 0 bis 19, der zweite von 0 bis 1:
array[0][0] = 1;
array[0][1] = 2;
array[1][0] = 3;
array[1][1] = 4;
...
array[19][0] = 39;
array[19][1] = 40;
danke, andere Frage, hier wurde ein 10x10 array erstellt
und mit Zufallszahlen befüllt. aber ich versteh den sinn dahinter nicht beide for schleifen fangen bei 0 an, das heißt array[zeile0][zeile0] = eine Zufallszahl, dann weiter array[zeile1][spalte1] = eine Zufallszahl, so das geht bis 10 weiter dann ist es vorbei aber dann wären doch nur 10 Felder befüllt und nicht 100 verstehst du?? weil es geht ja von Zeile0 und spalte0 bis Zeile9 und spalte9 das heißt es werden nur 9 Felder (diagonal) befüllt der erst bleibt 0 doch das array ist trotzdem komplett befüllt ich check die Logik dahinter nicht
Mit freundlichen Grüßen
Durch die zwei Schleifen werden alle 100 Felder befüllt. Die äußere Schleife (i) ist für den ersten Index zuständig, die innere Schleife (j) für den zweiten Index.
Es geht los mit i=0. Während i=0 ist, läuft j ja von 0 bis 9, d.h. alle 10 Felder von punkte[0] werden befüllt. Dann wird i=1 und j läuft wieder von 0 bis 9, sodass alle 10 Felder von punkte[1] befüllt werden, usw.
asoo ich dachte beide schleifen laufen gleichzeitig
andere Frage, hier wurde ein 10x10 array erstellt
https://ibb.co/0MzZ8yP
und mit Zufallszahlen befüllt. aber ich versteh den sinn dahinter nicht beide for schleifen fangen bei 0 an, das heißt array[zeile0][zeile0] = eine Zufallszahl, dann weiter array[zeile1][spalte1] = eine Zufallszahl, so das geht bis 10 weiter dann ist es vorbei aber dann wären doch nur 10 Felder befüllt und nicht 100 verstehst du?? weil es geht ja von Zeile0 und spalte0 bis Zeile9 und spalte9 das heißt es werden nur 9 Felder (diagonal) befüllt der erst bleibt 0 doch das array ist trotzdem komplett befüllt ich check die Logik dahinter nicht
Mit freundlichen Grüßen