Оператор for
(C)
Оператор for
позволяет повторить выполнение того или иного оператора или составного оператора заданное число раз. Тело оператора for
выполняется ноль или более раз, пока необязательное условие не примет значение false. Внутри оператора for
можно использовать необязательные выражения для инициализации и изменения значений во время выполнения этого оператора (for
).
Синтаксис
iteration-statement
:
for
(
init-expression
Выбрать;
cond-expression
Выбрать;
loop-expression
Выбрать)
statement
Оператор for
выполняется следующим образом.
Вычисляется выражение
init-expression
(при его наличии). Он задает инициализацию для цикла. Нет ограничений на типinit-expression
.Вычисляется выражение
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
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по