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


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

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

Синтаксис

iteration-statement:
for(init-expressionВыбрать;cond-expressionВыбрать;loop-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( ; ; )

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

Пример

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

См. также

Операторы