Поделиться через


Оператор for (C)

Оператор for позволяет повторить выполнение того или иного оператора или составного оператора заданное число раз. Тело оператора for выполняется ноль или более раз, пока необязательное условие не примет значение false. Внутри оператора for можно использовать необязательные выражения для инициализации и изменения значений во время выполнения этого оператора (for).

Синтаксис

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

Оператор for выполняется следующим образом:

  1. Вычисляется выражение init-expression (при его наличии). Он задает инициализацию для цикла. Нет ограничений init-expressionна тип .

  2. Вычисляется выражение cond-expression (при его наличии). Это выражение должно иметь арифметический тип или тип указателя. Он вычисляется перед каждой итерацией. Возможны три результата.

    • Если cond-expression значение равно true (ненулевое), statement выполняется, то loop-expressionвычисляется , если таковой имеется. После каждой итерации вычисляется выражение loop-expression. Нет ограничений на его тип. Побочные эффекты выполняются по порядку. Затем процесс начинается снова с вычисления выражения cond-expression.

    • Если выражение cond-expression опущено, оно (cond-expression) считается истинным, и выполнение продолжается согласно описанию в предыдущем абзаце. Выполнение оператора for без аргумента cond-expression завершается только при выполнении в его теле оператора break или return либо при выполнении оператора перехода goto к оператору с меткой вне тела оператора for.

    • Если выражение cond-expression имеет значение false (0), выполнение оператора for завершается и управление передается следующему оператору программы.

Выполнение оператора for также завершается при выполнении в его теле оператора break, goto или return. Оператор continue в цикле for приводит к вычислению выражения loop-expression. break При выполнении инструкции внутри for цикла loop-expression не вычисляется или не выполняется. Оператор

for( ; ; )

— это обычный способ создания бесконечного цикла, который можно выйти только с оператором или gotoreturn операторомbreak.

Пример

В следующем примере показано использование оператора 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;
}

Выходные данные

Number of spaces: 4
Number of tabs: 2

См. также

Отчеты