For (;;);
Это бесконечный цикл. Точки с запятой в скобках должны обязательно присутствовать, даже если между ними ничего нет.
Циклы for в Си отличаются от аналогичных циклов в Паскале своей гибкостью и большими возможностями. Первая и третья составляющие в скобках не обязательно присваивают начальное значение параметру цикла и изменяют его после каждой итерации, а вторая составляющая не обязательно является условием продолжения цикла. Любая из этих составляющих может быть любым выражением или оператором целого или вещественного типов, строкой или функцией. Но вторая составляющая всегда понимается как условие, что бы она собой ни представляла:
for (puts(“Славное”); puts(“море -”); puts(“Байкал!”))
puts(“священный”);
На экран будет выведена бесконечная последовательность:
Славное
Море -
Священный
Байкал!
Море -
Священный
Байкал!
Море -
Священный
Байкал!
. . . . .
Условие выполнения цикла проверяется перед каждой итерацией, а приращение параметра цикла может быть переменным, поэтому, в отличие от Паскаля, в Си допускается изменение значения параметра цикла и условия продолжения цикла в теле этого же цикла. Может отсутствовать и сам оператор, выполняемый в цикле:
for (int count=0; getch()!=’\n’; count++);
Этот цикл подсчитывает количество вводимых с клавиатуры символов, пока не будет нажата клавиша ввода (она соответствует ESC-последовательности ‘\n’). В этом цикле параметр цикла count не входит в условие его выполнения - это тоже не обязательно.
В одном цикле for можно использовать одновременно несколько параметров цикла, которые при инициализации разделяются запятыми:
#define N 100
Дата добавления: 2015-10-19; просмотров: 777;