Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Führt eine Anweisung wiederholt aus, bis die Bedingung false ergibt. Informationen zur bereichsbasierten for
-Anweisung finden Sie unter Range-based for
-Anweisung (C++). Informationen zur C++/CLI for each
-Anweisung finden Sie unter for each
, in
.
Syntax
for (
init-expression
;
cond-expression
;
loop-expression
)
statement
Hinweise
Verwenden Sie die for
-Anweisung, zum Erstellen von Schleifen, die eine angegebene Anzahl von Wiederholungen ausführen müssen.
Die for
-Anweisung besteht aus drei optionalen, in der folgenden Tabelle dargestellten, Teilen.
for-Schleifenelemente
Syntaxname | Ausführung bei | Beschreibung |
---|---|---|
init-expression |
Vor jedem anderen Element der for -Anweisung wird init-expression nur einmal ausgeführt. Das Steuerelement wird dann an cond-expression übergeben. |
Wird häufig zum Initialisieren von Schleifenindizes verwendet. Es können Ausdrücke oder Deklarationen enthalten sein. |
cond-expression |
Vor der Ausführung jeder Iteration von statement , einschließlich der ersten Iteration. statement wird nur ausgeführt, wenn cond-expression den Wert „True“ (ungleich 0 (null)) annimmt. |
Ein Ausdruck, der einen Ganzzahltyp oder einen Klassentyp ergibt, der über eine eindeutige Konvertierung in einen Ganzzahltyp verfügt. Wird normalerweise zum Testen von Beendigungskriterien für Schleifen verwendet. |
loop-expression |
Am Ende jeder Iteration von statement . Nachdem loop-expression ausgeführt wird, wird cond-expression ausgewertet. |
Wird normalerweise zum Erhöhen von Schleifenindizes verwendet. |
Die folgenden Beispiele zeigen verschiedene Verwendungsmöglichkeiten der for
-Anweisung.
#include <iostream>
using namespace std;
int main() {
// The counter variable can be declared in the init-expression.
for (int i = 0; i < 2; i++ ){
cout << i;
}
// Output: 01
// The counter variable can be declared outside the for loop.
int i;
for (i = 0; i < 2; i++){
cout << i;
}
// Output: 01
// These for loops are the equivalent of a while loop.
i = 0;
while (i < 2){
cout << i++;
}
// Output: 01
}
init-expression
und loop-expression
können mehrere durch Kommas getrennte Anweisungen enthalten. Zum Beispiel:
#include <iostream>
using namespace std;
int main(){
int i, j;
for ( i = 5, j = 10 ; i + j < 20; i++, j++ ) {
cout << "i + j = " << (i + j) << '\n';
}
}
/* Output:
i + j = 15
i + j = 17
i + j = 19
*/
Der loop-expression
kann erweitert oder verringert werden oder in anderer Weise geändert werden.
#include <iostream>
using namespace std;
int main(){
for (int i = 10; i > 0; i--) {
cout << i << ' ';
}
// Output: 10 9 8 7 6 5 4 3 2 1
for (int i = 10; i < 20; i = i+2) {
cout << i << ' ';
}
}
// Output: 10 12 14 16 18
Eine for
-Schleife wird beendet, wenn break
, return oder goto
(an eine beschriftete Anweisung außerhalb der for
-Schleife) innerhalb von statement
ausgeführt wird. Mit einer continue
-Anweisung in einer for
-Schleife wird nur die aktuelle Iteration beendet.
Wenn cond-expression
nicht angegeben wird, wird sie als true
betrachtet, und die for
Schleife wird nicht ohne break
, return
oder goto
innerhalb von statement
beendet.
Obwohl die drei Felder der for
-Anweisung normalerweise zum Initialisieren, Testen auf Beendigung und Inkrementieren verwendet werden, sind sie nicht auf diese Verwendungsmöglichkeiten begrenzt. Beispielsweise gibt der folgende Code die Zahlen 0 bis 4 aus. In diesem Fall handelt es sich bei statement
um die null-Anweisung:
#include <iostream>
using namespace std;
int main()
{
int i;
for( i = 0; i < 5; cout << i << '\n', i++){
;
}
}
for
-Schleifen und der C++-Standard
Der C++-Standard besagt, dass eine in einer for
-Schleife deklarierte Variable den Gültigkeitsbereich nach Beenden der for
-Schleife verlassen soll. Zum Beispiel:
for (int i = 0 ; i < 5 ; i++) {
// do something
}
// i is now out of scope under /Za or /Zc:forScope
Standardmäßig bleibt unter /Ze
eine in einer for
-Schleife deklarierte Variable bis zum Beenden der for
-Schleife des einschließenden Bereichs im Bereich.
/Zc:forScope
ermöglicht Standardverhalten der in for-Schleifen deklarierten Variablen, ohne dass /Za
angegeben werden muss.
Es ist auch möglich, die Bereichsunterschiede der for
-Schleife wie folgt zum erneuten Deklarieren der Variablen unter /Ze
verwenden:
// 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 Verhalten imitiert das Standardverhalten einer Variablen genauer, die in einer for
-Schleife deklariert wurde, für die zum Verlassen des Bereichs nach dem Ausführen der Schleife Variablen erforderlich sind, die in einer for
-Schleife deklariert werden. Wenn eine Variable in einer for
-Schleife deklariert wird, wird sie vom Compiler intern zu einer lokalen Variablen im eingeschlossenen Bereich der for
-Schleife höhergestuft. Sie wird höhergestuft, auch wenn bereits eine lokale Variable mit demselben Namen vorhanden ist.
Weitere Informationen
Iterationsanweisungen
Schlüsselwörter
while
-Anweisung (C++)
do-while
-Anweisung (C++)
Bereichsbasierte for
-Anweisung (C++)