Kursinhalt
C# Grundlagen
C# Grundlagen
For-Schleife
Eine Schleife ermöglicht es uns, ein Stück Code so oft auszuführen, wie wir wollen. Es gibt verschiedene Arten von Schleifen. In C# verwenden wir die for loop
, wenn wir ein Stück Code eine bestimmte Anzahl von Malen ausführen möchten.
Das Template (Syntax) einer for-Schleife ist wie folgt:
Betrachten wir ein Beispiel, bei dem wir diese Syntax verwenden:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // Output "Hello World" ten times. for(int i = 0; i < 10; i++) { Console.WriteLine("Hello World"); } } } }
Hinweis
i++
ist dasselbe wiei = i + 1
. Es erhöht den Wert der Variablen um1
. Ebenso verringerti--
den Wert um1
.
int i = 0
ist der Initialisierungsteil. Die Initialisierung erfolgt, wenn die Schleife startet. Zu Beginn der Schleife wird eine neue temporäre Variable namensi
erstellt und mit einem Wert von0
initialisiert.i < 10
ist die Bedingung. Die Bedingung wird bei jeder Iteration (Wiederholung) der Schleife überprüft. Die Schleife führt den eingeschlossenen Codeblock so lange aus, wie die Bedingung wahr ist.i++
ist die Operation, die nach jeder Iteration ausgeführt werden soll. Die Operation ist normalerweise eine Erhöhung oder Verringerung. Da der Wert voni
nach jeder Iteration erhöht wird, wird die Bedingungi < 10
nach 10 Iterationen falsch, und die Schleife stoppt.
Es ist wichtig zu verstehen, dass alle drei Komponenten der for
-Schleife — initialization
, condition
und operation
— optional sind. Sie können jede von ihnen weglassen, aber dies könnte das Verhalten der Schleife ändern.
Obwohl es nicht empfohlen wird, können Sie die Schleifenvariable außerhalb der Schleife deklarieren und den initialization
-Teil leer lassen. Das bedeutet, dass die Schleife weiterhin funktioniert, aber Sie müssen vorsichtig sein, da dies zu unerwarteten Ergebnissen führen kann, wenn es nicht richtig gehandhabt wird.
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10; i++) { Console.WriteLine("Hello World"); } } } }
Wir können auch den operation
-Teil entfernen und ihn am Ende des Codeblocks der Schleife platzieren. Die Schleife wird sich genauso verhalten wie zuvor, da die Variable i
nach jeder Iteration weiterhin inkrementiert wird.
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int i = 0; for(; i < 10;) { Console.WriteLine("Hello World"); i++; } } } }
Beachten Sie, dass wir im obigen Code immer noch ein Semikolon (;
) in der Schleifensyntax platziert haben, wo int i = 0
erwartet wurde. Dieses Semikolon muss immer vorhanden sein, unabhängig davon, ob wir eine Schleifenvariable erstellen oder nicht.
Das Entfernen der Schleifenbedingung ist ebenfalls möglich, aber es führt dazu, dass die Schleife unendlich läuft, falls sie nicht manuell beendet wird (worüber wir in den späteren Kapiteln mehr erfahren werden).
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { // In this case the variable `i` is useless so we don't create it. // The loop never ends for(;;) { Console.WriteLine("Hello World"); } } } }
Hinweis
Wir haben immer noch beide Semikolons in der Schleifensyntax
for(;;)
eingefügt, diese sind unerlässlich, sonst zeigt der Compiler Fehler an.
Da sich der Wert von i
bei jeder Iteration ändert, können wir dies zu unserem Vorteil nutzen. Um dies zu verstehen, schauen wir uns ein einfaches Programm an, das den Wert von i
bei jeder Iteration ausgibt:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 0; i < 10; i++) { Console.WriteLine(i); } } } }
Beachten Sie, dass es bei 9
endet, weil es mit der Ziffer 0
beginnt. Die Gesamtanzahl der Iterationen betrug zehn. Wir können die Initialisierung, die Bedingung und die Operation ändern, um die zehn geraden Zahlen von 2 bis 20 auszugeben.
Hinweis
Gerade Zahlen sind Zahlen, die durch
2
teilbar sind. Zum Beispiel 2, 4, 6, 8, 10, usw. Gerade Zahlen schließen auch die Zahl0
ein, aber wir werden in diesen Beispielen nur mit geraden Zahlen über0
arbeiten.
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 2; i <= 20; i += 2) { Console.WriteLine(i); } } } }
Hinweis
i += 2
ist eine kürzere Schreibweise füri = i + 2
. Diese Syntax ist auch für andere Operatoren gültig, zum Beispieli -= 2
,i *= 2
,i /= 2
,i %= 2
usw.
Die Schleife beginnt mit 0
und erhöht den Wert von i
bei jeder Iteration um 2
. Wir haben die Bedingung auf i <= 20
geändert, damit die Schleife bei 20
stoppt.
Die obige Logik diente dem Verständnis der Funktionsweise einer for-Schleife. Wir können eine viel einfachere Logik verwenden, um die ersten zehn geraden Zahlen auszugeben:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 10; i++) { Console.WriteLine(i * 2); } } } }
In diesem Fall ist die Bedingung viel einfacher. Wenn wir zum Beispiel die ersten 27 geraden Zahlen haben möchten, müssen wir wissen, was die 27. gerade Zahl ist, um die Bedingung für die vorherige Methode zu formulieren. In diesem Fall müssen wir jedoch einfach die Bedingung zu i <= 27
ändern:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { for(int i = 1; i <= 27; i++) { Console.WriteLine(i * 2); } } } }
Danke für Ihr Feedback!