Erste Schritte 2 dimensionales Array eleganter befüllen

MaCXyLo

Mitglied
Hallo,

Code:
int m = 1;		int n = 1;
			for (int k = 2; k <= MultiplicateLine+1; k++) {
				for (int l = 2; l <= MultiplicateLine+1; l++) {
					StringArray[k][l] = Integer.toString((m)*(n));
					StringArray[k][l] = spaces(StringArray[k][l].length())+Integer.toString((m)*(n));
					m++;
				}
					n++;
					m=1;
			}

ich finde, der folgende Codeschnippsel sieht nicht sonderlich elegant aus.
Deshalb wollte ich mal fragen, wie ich das besser hinkriege.

MultiplicateLine+1; <- wie erreiche ich, das die For Schleife ohne das +1 ein zusätzliches mal durchläuft?
Ich hab eigentlich gedacht, das würde klappen, wenn ich z.B. >= in die For-Schleife einsetze.

Und ich finde die Methode, wie ich das Array befülle also mit dem m++, n++ sieht auch nicht gut aus.
Gibt's da eine etwas elegantere Möglichkeit?

Grüße!
 
Java:
int m = 1;
int n = 1;
MultiplicateLine++;
for (int k = 2; k <= MultiplicateLine; k++, n++) {
	for (int l = 2, m = 1; l <= MultiplicateLine; l++, m++) {
		StringArray[k][l] = Integer.toString((m)*(n));
		StringArray[k][l] = spaces(StringArray[k][l].length())+Integer.toString((m)*(n));
	}
}

Erhöhe "multiplicateLine" einfach vor der doppelten Schleife und lasse "n" und "m" im Schleifenkopf erhöhen.
 
Zuletzt bearbeitet:
Hallo Jose,
vielen Dank für deine Hilfe.
Das ist jetzt bei rausgekommen:

Code:
			for (int k = 2, m = 1; k <= MultiplicateLine+1; k++, m++) {				for (int l = 2, n = 1; l <= MultiplicateLine+1; l++, n++) {
					StringArray[k][l] = Integer.toString((m)*(n));
					StringArray[k][l] = spaces(StringArray[k][l].length())+Integer.toString((m)*(n));
				}
			}
 

Zurück
Oben