{
int s = 0;
for (int n=1; n<=100; n++) // n – локальная
s+=n; // переменная цикла
printf(“\ns=%d”, s);
return 0;
}
Внимание! Параметр цикла, если он больше нигде, кроме этого цикла, не используется в программе, желательно описать как локальную переменную этого цикла внутри круглых скобок.
Этот же цикл можно организовать без тела цикла:
for (int n=1; n<=100; s+=n++);
Эту же задачу можно решить, суммируя числа справа налево, то есть от 100 до 1:
for (int n=100; n>=1; s+=n--);
Любая из трех составляющих (инициализация, условии, изменение) может отсутствовать, причем если отсутствует условие продолжения цикла, то считается, что оно всегда истинно, и цикл превращается в бесконечный:
for (;;);
Это бесконечный цикл. Точки с запятой в скобках должны обязательно присутствовать, даже если между ними ничего нет.
Циклы for в Си отличаются от аналогичных циклов в Паскале своей гибкостью и большими возможностями. Первая и третья составляющие в скобках не обязательно присваивают начальное значение параметру цикла и изменяют его после каждой итерации, а вторая составляющая не обязательно является условием продолжения цикла. Любая из этих составляющих может быть любым выражением или оператором целого или вещественного типов, строкой или функцией. Но вторая составляющая всегда понимается как условие, что бы она собой ни представляла:
for (puts(“Славное”); puts(“море -”); puts(“Байкал!”))
puts(“священный”);
На экран будет выведена бесконечная последовательность: