Udostępnij za pośrednictwem


for Instrukcja (C)

Instrukcja for umożliwia powtórzenie instrukcji lub instrukcji złożonej określoną liczbę razy. Treść instrukcji for jest wykonywana zero lub więcej razy, dopóki opcjonalny warunek nie stanie się fałszywy. Możesz użyć wyrażeń opcjonalnych w instrukcji for , aby zainicjować i zmienić wartości podczas for wykonywania instrukcji.

Składnia

iteration-statement:
for( init-expressionopt opt ; cond-expression ; loop-expression ) statement

Wykonanie instrukcji for jest kontynuowane w następujący sposób:

  1. Wartość init-expression, jeśli istnieje, jest obliczana. Określa inicjowanie pętli. Nie ma żadnych ograniczeń dotyczących typu init-expression.

  2. Wartość cond-expression, jeśli istnieje, jest obliczana. To wyrażenie musi mieć typ arytmetyczny lub wskaźnik. Jest obliczana przed każdą iterację. Możliwe są trzy wyniki:

    • Jeśli cond-expression parametr jest true (niezerowy), statement jest wykonywany, a następnie loop-expression, jeśli istnieje, jest obliczany. Wartość jest obliczana loop-expression po każdej iteracji. Nie ma żadnych ograniczeń dotyczących jego typu. Efekty uboczne będą wykonywane w kolejności. Następnie proces rozpoczyna się ponownie od oceny elementu cond-expression.

    • Jeśli cond-expression zostanie pominięty, cond-expression jest uznawany za true, a wykonanie przebiega dokładnie tak, jak opisano w poprzednim akapicie. Instrukcja for bez argumentu cond-expression kończy się tylko wtedy, gdy break jest wykonywana instrukcja lub return w treści instrukcji lub gdy goto jest wykonywana instrukcja (do instrukcji oznaczonej etykietą poza treścią for instrukcji).

    • Jeśli cond-expression wartość to false (0), wykonanie instrukcji for kończy działanie i kontrola przechodzi do następnej instrukcji w programie.

Instrukcja for kończy się również po breakwykonaniu instrukcji , gotolub return w treści instrukcji. Instrukcja continue w for pętli powoduje loop-expression ocenę. break Gdy instrukcja jest wykonywana wewnątrz for pętli, loop-expression nie jest obliczana ani wykonywana. Ta instrukcja

for( ; ; )

jest niestandardowym sposobem tworzenia nieskończonej pętli, którą można zamknąć tylko za pomocą breakinstrukcji , gotolub return .

Przykład

W tym przykładzie przedstawiono 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;
}

Wynik

Number of spaces: 4
Number of tabs: 2

Zobacz też

Zestawienia