for — instrukcja (C)
Instrukcja for pozwala powtórzyć instrukcję lub instrukcję złożoną określoną liczbę razy.Treść instrukcji for jest wykonywana zero lub więcej razy, dopóki opcjonalny warunek nie stanie się fałszywy.W ramach instrukcji for możesz użyć wyrażeń opcjonalnych, aby zainicjować i zmienić wartości podczas wykonywania instrukcji for.
Składnia
- iteration-statement:
for ( init-expressionopt ; cond-expressionopt ; loop-expressionopt )statement
Wykonanie instrukcji for następuje jak poniżej:
Obliczane jest init-expression, o ile istnieje.To określa inicjalizację pętli.Nie ma żadnych ograniczeń dla typu init-expression.
Obliczane jest cond-expression, o ile istnieje.Wyrażenie musi mieć typ arytmetyczny lub wskaźnikowy.Jest to obliczane przed każdą iteracją.Możliwe są trzy wyniki:
Jeśli cond-expression jest prawdziwe (niezerowe), wykonywane jest statement; następnie obliczane jest loop-expression, o ile istnieje.loop-expression jest obliczane po każdej iteracji.Nie ma żadnych ograniczeń dla jego typu.Efekty uboczne będą wykonywane w kolejności.Następnie proces rozpocznie się ponownie od obliczenia cond-expression.
Jeśli cond-expression zostało pominięte, cond-expression jest uważane za prawdziwe, a wykonywanie kodu jest kontynuowane dokładnie tak, jak opisano w poprzednim akapicie.Instrukcja for bez argumentu cond-expression jest przerywana, tylko gdy w treści instrukcji wykonana zostanie instrukcja break, return lub goto (do etykietowanej instrukcji na zewnątrz treści instrukcji for).
Jeśli cond-expression ma wartość false (0), wykonywanie instrukcji for jest przerywane, a sterowanie przekazywane do następnej instrukcji w programie.
Instrukcja for również przerywa wykonywanie, gdy w treści instrukcji zostanie wykonana instrukcja break, goto lub return.Instrukcja continue w pętli for powoduje obliczenie loop-expression.Gdy instrukcja break jest wykonywana wewnątrz pętli for, to loop-expression nie jest obliczane ani wykonywane.Ta instrukcja
for( ;; )
jest niestandardowym sposobem utworzenia pętli nieskończonej, która może zostać zakończona tylko za pomocą instrukcji break, goto lub return.
Kod
Ten przykład ilustruje instrukcję for:
// 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;
}
Dane wyjściowe
Number of spaces: 4
Number of tabs: 2