for-Anweisung (C++)

Führt - Anweisung und SchleifeAusdruck wiederholt aus, bis CondAusdruck falsch ist.Informationen zum bereichsbasierte für Anweisung, finden Sie unter Bereichsbasiert für Anweisung (C++).

for ( init-expression ; cond-expression ; loop-expression )
   statement 

Hinweise

Verwenden Sie die - Anweisung, um for-Schleifen zu erstellen, die eine angegebene Anzahl von Wiederholungen ausführen müssen.

Die for-Anweisung besteht aus drei Teilen optionalen, wie in der folgenden Tabelle dargestellt.

für Schleifen-Elemente

Syntax-Name

Wenn Sie ausgeführt werden

Inhalt

INITAusdruck

Vor einem anderen Element der für-Anweisung.INITAusdruck wird nur einmal ausgeführt.Steuerdann an den CondAusdruck.

Häufig verwendet Schleifenindizes initialisieren.Sie kann Ausdrücke oder Deklarationen (nur C++) enthalten.

CondAusdruck

Vor Ausführung jeder Iteration der Anweisung, einschließlich der erste Iteration.Anweisung wird nur ausgeführt, wenn CondAusdruck ergibt, mit true Wert ungleich 0 (null).

Ein Ausdruck, der zu einem ganzzahligen Typ oder einem Klassentyp ergibt, der eine eindeutige Konvertierung in einen ganzzahligen Typ verfügt.Normalerweise verwendet, um für SchleifeBeendigungskriterien zu testen.

SchleifeAusdruck

Am Ende jeder Iteration der Anweisung.Nachdem SchleifeAusdruck ausgeführt wurde, wird CondAusdruck ausgewertet.

Normalerweise verwendet, um Schleifenindizes zu erhöhen.

Beispiel:

// for_statement1.cpp
#include <stdio.h>
int main() {
int i;
for ( i = 0 ; i < 2 ; i++ ) 
   printf_s( "\n%d\n",i );
}

Die vorangehende for-Schleife entspricht der folgenden while-Schleife entsprechend:

// for_statement2.cpp
#include <stdio.h>
int main()
{
   int i = 0;
   while ( i < 2 )
      printf_s( "%d\n", i++ );
}

INITAusdruck und SchleifeAusdruck können mehrere Anweisungen enthalten, die von Operator Komma getrennt werden.Beispiel:

// for_statment3.cpp
#include <stdio.h>
int main()
{
   int i, j;
   for ( i = 5, j = 10 ; i + j < 20; i++, j++ )
      printf_s( "\n i + j = %d", (i + j) );
}

Eine for-Schleife beendet wird, wenn Unterbrechung, Rückgabe oder goto (zu einer Anweisung mit Marke außerhalb der für Schleife) innerhalb der - Anweisung ausgeführt wird.Eine Fortfahren-Anweisung in einer Schleife beendet for nur die aktuelle Iteration.

Wenn CondAusdruck weggelassen wird, wird er als aus und die für Schleife beendet wird ohne break, return oder goto innerhalb der - Anweisung.

Eine einfache Möglichkeit, eine Endlosschleife mithilfe der - Anweisung ist for anzugeben:

for( ; ; )
{
    // Statements to be executed.
}

Obwohl die drei Felder der for-Anweisung normalerweise für Initialisierung verwendet werden, Testen für Austritt und inkrementierend, werden sie nicht in dieser Verwendungsmöglichkeiten begrenzt.Beispielsweise gibt der folgende Code die Zahl. 0 bis 4.In diesem Fall ist die --Anweisung:

// for_statement4.cpp
#include <stdio.h>
int main()
{
    int i;
    for( i = 0; i < 5; printf_s("%d\n", i), i++)
        ;
}

für Schleifen und den C++-Standard

Im C++-Standard besagt, dass eine Variable, die in einer for-Schleife deklariert wird, den Gültigkeitsbereich verlässt, nachdem die for-Schleife.Beispiel:

for (int i = 0 ; i < 5 ; i++) {
   // do something
}
// i is now out of scope under /Za or /Zc:forScope

Standardmäßig unter /Ze, bleibt eine Variable, die in einer for-Schleife deklariert wird, im Bereich, bis der einschließende Bereich der for-Schleife.

/Zc:forScope aktiviert Standardverhalten der Variablen, die in für Schleifen deklariert werden, ohne zu benötigen, mit der /Za anzugeben.

Es ist auch möglich, die bewertenden Unterschiede der for-Schleife zu verwenden, um Variablen unter /Ze erneut zu deklarieren, wie folgt:

// for_statement5.cpp
int main(){
   int i = 0;   // hidden by var with same name declared in for loop
   for ( int i = 0 ; i < 3; i++ ) {}

   for ( int i = 0 ; i < 3; i++ ) {}
}

Dieses imitiert genauer das Standardverhalten einer Variablen, die in einer for-Schleife deklariert wird, die die Variablen erfordern, die in einer for-Schleife deklariert werden, um den Bereich zu verlassen, nachdem die - Schleife ausgeführt wurde.Wenn eine Variable in einer for-Schleife deklariert wird, wird der Compiler intern sie zu einer lokalen Variablen im einschließenden Bereich der for-Schleife, auch wenn bereits eine lokale Variable mit dem gleichen Namen vorhanden sind.

Siehe auch

Referenz

Iterations-Anweisungen (C++)

C++-Schlüsselwörter

while-Anweisung (C++)

do-while-Anweisung (C++)

Bereichsbasiert für Anweisung (C++)