for (C#-Referenz)for (C# Reference)

Mithilfe einer for-Schleife können Sie eine Anweisung oder einen Anweisungsblock wiederholt ausführen, bis ein bestimmter Ausdruck nach false ausgewertet wird.By using a for loop, you can run a statement or a block of statements repeatedly until a specified expression evaluates to false. 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.This kind of loop is useful for iterating over arrays and for other applications in which you know in advance how many times you want the loop to iterate.

BeispielExample

Im folgenden Beispiel wird der i-Wert in die Konsole geschrieben und bei jeder Iteration der Schleife um 1 erhöht.In the following example, the value of i is written to the console and incremented by 1 during each iteration of the loop.


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.The for statement in the previous example performs the following actions.

  1. Zuerst wird der Anfangswert der Variable i festgelegt.First, the initial value of variable i is established. Dieser Schritt wird unabhängig davon, wie oft die Schleife wiederholt wird, nur einmal ausgeführt.This step happens only once, regardless of how many times the loop repeats. Sie können sich diese Initialisierung als außerhalb der Schleife erfolgend vorstellen.You can think of this initialization as happening outside the looping process.

  2. Um die Bedingung (i <= 5) auszuwerten, wird der Wert i mit 5 verglichen.To evaluate the condition (i <= 5), the value of i is compared to 5.

    • Wenn i ist kleiner als oder gleich 5 ist, wird die Bedingung nach true ausgewertet, und die folgenden Aktionen werden ausgeführt.If i is less than or equal to 5, the condition evaluates to true, and the following actions occur.

      1. In der Console.WriteLine-Anweisung im Hauptteil der Schleife wird der i-Wert dargestellt.The Console.WriteLine statement in the body of the loop displays the value of i.

      2. Der i-Wert wird um 1 inkrementiert.The value of i is incremented by 1.

      3. Die Schleife kehrt zum Start von Schritt 2 zurück, um die Bedingung erneut auszuwerten.The loop returns to the start of step 2 to evaluate the condition again.

    • Wenn i größer als 5 ist, wird die Bedingung nach false ausgewertet, und Sie beenden die Schleife.If i is greater than 5, the condition evaluates to false, and you exit the loop.

Beachten Sie, dass wenn der ursprüngliche i-Wert größer als 5 ist, wird der Hauptteil der Schleife kein einziges Mal ausgeführt.Note that, if the initial value of i is greater than 5, the body of the loop doesn't run even once.

Jede for-Anweisung definiert die Abschnitte „Initialisierer“, „Bedingung“ und „Iterator“.Every for statement defines initializer, condition, and iterator sections. Diese Abschnitte bestimmen, wie oft die Schleife in der Regel durchlaufen wird.These sections usually determine how many times the loop iterates.

for (initializer; condition; iterator)  
    body  

Diese Abschnitte dienen den folgenden Zwecken.The sections serve the following purposes.

  • Im Initialisiererabschnitt werden die anfänglichen Bedingung festgelegt.The initializer section sets the initial conditions. Die Anweisungen in diesem Abschnitt werden nur einmal ausgeführt, bevor die Schleife beginnt.The statements in this section run only once, before you enter the loop. Der Abschnitt kann nur eine der beiden folgenden Optionen enthalten.The section can contain only one of the following two options.

    • Die Deklaration und die Initialisierung einer lokalen Schleifenvariablen, wie das erste Beispiel zeigt (int i = 1).The declaration and initialization of a local loop variable, as the first example shows (int i = 1). Die Variable ist in der Schleife lokal; ein Zugriff darauf von außerhalb der Schleife ist nicht möglich.The variable is local to the loop and can't be accessed from outside the loop.

    • Null oder mehr Anweisungsausdrücke aus der folgenden Liste, durch Kommas getrennt.Zero or more statement expressons from the following list, separated by commas.

  • Der Bedingungsabschnitt enthält einen booleschen Ausdruck, der ausgewertet wird, um festzustellen, ob die Schleife beendet oder erneut ausgeführt werden soll.The condition section contains a boolean expression that’s evaluated to determine whether the loop should exit or should run again.

  • Der Iteratorabschnitt definiert, was nach jeder Iteration des Hauptteils der Schleife geschieht.The iterator section defines what happens after each iteration of the body of the loop. Der Iteratorabschnitt enthält keine oder mehrere der folgenden Anweisungsausdrücke, durch Kommas getrennt:The iterator section contains zero or more of the following statement expressions, separated by commas:

  • 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.The body of the loop consists of a statement, an empty statement, or a block of statements, which you create by enclosing zero or more statements in braces.

    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.You can break out of a for loop by using the break keyword, or you can step to the next iteration by using the continue keyword. Sie können jede beliebige Schleife auch mit einer goto-, return- oder throw-Anweisung beenden.You also can exit any loop by using a goto, return, or throw statement.

Im ersten Beispiel in diesem Thema wird die häufigste Art der for-Schleife dargestellt, die die folgenden Optionen für die Abschnitte bereitstellt.The first example in this topic shows the most typical kind of for loop, which makes the following choices for the sections.

  • Der Initialisierer deklariert und initialisiert Sie eine lokale Schleifenvariable, i, die die Iterationen der Schleife mitzählt.The initializer declares and initializes a local loop variable, i, that maintains a count of the iterations of the loop.

  • Die Bedingung überprüft den Wert der Schleifenvariablen gegen einen bekannten endgültigen Wert, 5.The condition checks the value of the loop variable against a known final value, 5.

  • Der Iterator verwendet eine Postfix-Inkrementanweisung, i++, um den Zählerstand jeder Schleife festzuhalten.The iterator section uses a postfix increment statement, i++, to tally each iteration of the loop.

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.The following example illustrates several less common choices: assigning a value to an external loop variable in the initializer section, invoking the Console.WriteLine method in both the initializer and the iterator sections, and changing the values of two variables in the iterator section.

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.All of the expressions that define a for statement are optional. Die folgende Anweisung erstellt z.B. eine Endlosschleife.For example, the following statement creates an infinite loop.

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

C#-ProgrammiersprachenspezifikationC# Language Specification

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

Siehe auchSee Also

C#-ReferenzC# Reference
C#-ProgrammierhandbuchC# Programming Guide
C#-SchlüsselwörterC# Keywords
foreach, inforeach, in
for-Anweisung (C++)for Statement (C++)
IterationsanweisungenIteration Statements