C# For-Schleife nächste Zeile?
Hallo zusammen, bin momentan am verzweifeln mit meinem Code.
Habe die Aufgabe bekommen, das kleine Einmaleins auszugeben. Den Code dazu habe ich entwickelt, dieses ist aber nicht korrekt formatiert. Die Ausgabe sollte wie folgt aussehen:
Meine Ausgabe sieht momentan allerdings so aus:
Hat jemand eine Ahnung, wie ich es so wie im ersten Bild formatieren kann, also die einzelnen Zahlenreihen untereinander?
Mein Code ist folgender:
2 Antworten
Versuche mal
- "Console.Write(String.Format("{0,3:D}", var));" statt dem Leerzeichen im Write
- Nach der ersten schließenden Klammer "Console.Write("\n");" (Neue Zeile)
Die Funktion Console.WriteLine() gibt einen Text mit Zeilenumbruch am Ende aus, Console.Write() hingegen nicht. Aus diesem Grund werden alle Zahlen hintereinander ausgegeben.
Füge nach der inneren for-Schleife Folgendes ein, damit am Ende der Zahlenreihe ein Zeilenumbruch eingefügt wird (\n steht für „new line“):
Console.Write("\n");
Damit die Zahlen wie in der Vorlage untereinander stehen, kannst Du Folgendes schreiben:
Console.Write(var.ToString().PadLeft(2) + " ");
Die Funktion ToString() wandelt den Integer var in einen String um. PadLeft(2) fügt vor einer einstelligen Zahl ein Leerzeichen ein, sodass die Länge des Strings 2 ist.
Die Variable var würde ich übrigens umbenennen, z. B. in produkt, da var ein Schlüsselwort in C# ist.
Das Ergebnis:
Das kleine Einmaleins
=====================
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Der fertige Code:
Console.WriteLine("Das kleine Einmaleins");
Console.WriteLine("=====================");
for(int i = 1; i <= 10; i++) {
for(int j = 1; j <= 10; j++) {
int produkt = i * j;
Console.Write(produkt.ToString().PadLeft(2) + " ");
}
Console.Write("\n");
}