for-Anweisung (C)
Die for-Anweisung können Sie eine - Anweisung oder eine Verbundanweisung angegebenen Anzahl von Wiederholungen überprüfen.Der Text einer for-Anweisung wird null ausgeführt oder mehrmals, bis eine optionale Bedingung falsch ist.Sie können optionale Ausdrücke innerhalb der for-Anweisung verwenden, um Werte während der Ausführung der Anweisung for zu initialisieren und zu ändern.
Syntax
- Iterationsanweisung:
for ( init-expressionentscheiden Sie ; cond-expressionentscheiden Sie ; loop-expressionentscheiden Sie )statement
Ausführung von Erträgen einer for-Anweisung, wie folgt:
init-expression ggf. wird ausgewertet.Dadurch wird die Initialisierung für die Schleife an.Es gibt keine Einschränkung für den Typ von init-expression.
cond-expression ggf. wird ausgewertet.Dieser Ausdruck muss arithmetischen oder Zeigertyp haben.Sie wird vor jeder Iteration ausgewertet.Drei Ergebnisse sind möglich:
Wenn cond-expression-Wert ungleich 0 (null) true ist, wird statement ausgeführt; wird loop-expression ggf. ausgewertet.loop-expression wird nach jeder Iteration ausgewertet.Es gibt keine Einschränkung auf seinem Typ.Nebeneffekte führen in der Reihenfolge aus.Der Prozess beginnt anschließend erneut mit der Auswertung von cond-expression.
Wenn cond-expression weggelassen wird, wird cond-expression echte eingestuft, und Ausführungserträge genau als im vorherigen Absatz beschrieben.Eine for-Anweisung ohne ein cond-expression-Argument endet, wenn nur eine break oder return-Anweisung innerhalb des Anweisungstexts ausgeführt wird oder wenn goto (zu einer Anweisung mit Marke außerhalb des for-Anweisungstexts) ausgeführt wird.
Wenn cond-expressionfalse (0) ist, beendet wird for Ausführung der - Anweisung und der wird die Steuerung an die nächste Anweisung im Programm.
Eine for-Anweisung beendet wird, auch wenn break, goto oder return-Anweisung innerhalb des Anweisungstexts ausgeführt wird.Eine continue-Anweisung in einer for-Schleife wird loop-expression ausgewertet werden.Wenn eine break-Anweisung innerhalb einer for-Schleife ausgeführt wird, wird loop-expression ausgewertet oder nicht ausgeführt.Diese Anweisung
for( ;; )
ist die übliche Methode, eine Endlosschleife zu erzeugen, die mit break, goto oder return-Anweisung nur beendet werden kann.
Code
In diesem Beispiel wird die for-Anweisung:
// c_for.c
int main()
{
char* line = "H e \tl\tlo World\0";
int space = 0;
int tab = 0;
int i;
int max = strlen(line);
for (i = 0; i < max; i++ )
{
if ( line[i] == ' ' )
{
space++;
}
if ( line[i] == '\t' )
{
tab++;
}
}
printf("Number of spaces: %i\n", space);
printf("Number of tabs: %i\n", tab);
return 0;
}
Ausgabe
Number of spaces: 4
Number of tabs: 2