Wie befüllt man zweidimensionale Arrays in java? (Siehe Foto)?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

For i=20; i>0; i-- {

For j=0; j<Array.length; j++ {

Meinst du sowas?


Nichtsnutz12 
Beitragsersteller
 19.02.2019, 18:25

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

0

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]);
}

Ideone


Nichtsnutz12 
Beitragsersteller
 19.02.2019, 18:08

genau danke

0
Nichtsnutz12 
Beitragsersteller
 19.02.2019, 18:25

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

0
regex9  19.02.2019, 18:32
@Nichtsnutz12

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.

1
Nichtsnutz12 
Beitragsersteller
 19.02.2019, 18:51
@regex9

also ist das gemeint hmm ich dachte das beide gleichzeitig laufen ahh haje java ist so kompliziert gut meinetwegen ich Machs danke

0

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;

Nichtsnutz12 
Beitragsersteller
 19.02.2019, 18:25

danke, 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

0
acdxx  19.02.2019, 18:41
@Nichtsnutz12

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.

1
Nichtsnutz12 
Beitragsersteller
 19.02.2019, 18:49
@acdxx

asoo ich dachte beide schleifen laufen gleichzeitig

0