for (C#-Referenz)

Mithilfe einer for-Schleife können Sie eine Anweisung oder einen Anweisungsblock wiederholt ausführen, bis ein bestimmter Ausdruck nach false ausgewertet wird. Diese Art von Schleife eignet sich für Iterationen von Arrays und für andere Anwendungen, in denen Sie im Voraus wissen, wie oft die Schleife durchlaufen werden soll.

Beispiel

Im folgenden Beispiel wird der i-Wert in die Konsole geschrieben und bei jeder Iteration der Schleife um 1 erhöht.


class ForLoopTest 
{
    static void Main() 
    {
        for (int i = 1; i <= 5; i++)
        {
            Console.WriteLine(i);
        }
    }
}
/*
Output:
1
2
3
4
5
*/

Die for-Anweisung im vorherigen Beispiel führt die folgenden Aktionen aus.

  1. Zuerst wird der Anfangswert der Variable i festgelegt. Dieser Schritt wird unabhängig davon, wie oft die Schleife wiederholt wird, nur einmal ausgeführt. Sie können sich diese Initialisierung als außerhalb der Schleife erfolgend vorstellen.

  2. Um die Bedingung (i <= 5) auszuwerten, wird der Wert i mit 5 verglichen.

    • Wenn i ist kleiner als oder gleich 5 ist, wird die Bedingung nach true ausgewertet, und die folgenden Aktionen werden ausgeführt.

      1. In der Console.WriteLine-Anweisung im Hauptteil der Schleife wird der i-Wert dargestellt.

      2. Der i-Wert wird um 1 inkrementiert.

      3. Die Schleife kehrt zum Start von Schritt 2 zurück, um die Bedingung erneut auszuwerten.

    • Wenn i größer als 5 ist, wird die Bedingung nach false ausgewertet, und Sie beenden die Schleife.

Beachten Sie, dass wenn der ursprüngliche i-Wert größer als 5 ist, wird der Hauptteil der Schleife kein einziges Mal ausgeführt.

Jede for-Anweisung definiert die Abschnitte „Initialisierer“, „Bedingung“ und „Iterator“. Diese Abschnitte bestimmen, wie oft die Schleife in der Regel durchlaufen wird.

for (initializer; condition; iterator)  
    body  

Diese Abschnitte dienen den folgenden Zwecken.

  • Im Initialisiererabschnitt werden die anfänglichen Bedingung festgelegt. Die Anweisungen in diesem Abschnitt werden nur einmal ausgeführt, bevor die Schleife beginnt. Der Abschnitt kann nur eine der beiden folgenden Optionen enthalten.

    • Die Deklaration und die Initialisierung einer lokalen Schleifenvariablen, wie das erste Beispiel zeigt (int i = 1). Die Variable ist in der Schleife lokal; ein Zugriff darauf von außerhalb der Schleife ist nicht möglich.

    • Null oder mehr Anweisungsausdrücke aus der folgenden Liste, durch Kommas getrennt.

  • Der Bedingungsabschnitt enthält einen booleschen Ausdruck, der ausgewertet wird, um festzustellen, ob die Schleife beendet oder erneut ausgeführt werden soll.

  • Der Iteratorabschnitt definiert, was nach jeder Iteration des Hauptteils der Schleife geschieht. Der Iteratorabschnitt enthält keine oder mehrere der folgenden Anweisungsausdrücke, durch Kommas getrennt:

  • Der Hauptteil der Schleife besteht aus einer Anweisung, einer leeren Anweisung oder einem Block von Anweisungen, die Sie erstellen, indem Sie 0 (null) oder mehrere Anweisungen in Klammern einschließen.

    Sie können die Schleife an jedem Punkt im for-Block mit dem Schlüsselwort break unterbrechen oder mit dem Schlüsselwort continue direkt zur nächsten Iteration der Schleife springen. Sie können jede beliebige Schleife auch mit einer goto-, return- oder throw-Anweisung beenden.

Im ersten Beispiel in diesem Thema wird die häufigste Art der for-Schleife dargestellt, die die folgenden Optionen für die Abschnitte bereitstellt.

  • Der Initialisierer deklariert und initialisiert Sie eine lokale Schleifenvariable, i, die die Iterationen der Schleife mitzählt.

  • Die Bedingung überprüft den Wert der Schleifenvariablen gegen einen bekannten endgültigen Wert, 5.

  • Der Iterator verwendet eine Postfix-Inkrementanweisung, i++, um den Zählerstand jeder Schleife festzuhalten.

Das folgende Beispiel veranschaulicht mehrere weniger gängige Optionen: das Zuweisen eines Werts zu einer externen Schleifenvariablen im Initialisierer, das Aufrufen der Console.WriteLine-Methode im Initialisierer und im Iterator und das Ändern die Werte von zwei Variablen im Iterator.

static void Main()
 {
     int i;
     int j = 10;
     for (i = 0, Console.WriteLine("Start: {0}",i); i < j; i++, j--, Console.WriteLine("i={0}, j={1}", i, j))
     {
         // Body of the loop.
     }
 }
 // Output:
 // Start: 0
 // i=1, j=9
 // i=2, j=8
 // i=3, j=7
 // i=4, j=6
 // i=5, j=5

Alle Ausdrücke, die eine for-Anweisung definieren, sind optional. Die folgende Anweisung erstellt z.B. eine Endlosschleife.

for (; ; )
{
    // ...
}

C#-Programmiersprachenspezifikation

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auch

C#-Referenz
C#-Programmierhandbuch
C#-Schlüsselwörter
foreach, in
for-Anweisung (C++)
Iterationsanweisungen