C# For-Schleife nächste Zeile?

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)

nicole33333 
Fragesteller
 03.10.2023, 11:37

Es funktioniert, vielen Dank!

0

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