Например, цикл
for (i=l ;;i++) {
…
}
является бесконечным.
Существуют разнообразные возможности применения цикла for:
1) можно применять операцию уменьшения для счета в порядке убывания вместо счета в порядке возрастания
for(n=10;n>0;n-)
printf("%d \n",n);
2) при желании можно вести счет двойками, десятками и т.д.
for (n=2;n<60;n+=2)
printf("%d\n",n);
3) можно вести подсчет при помощи символов, а не только чисел
for(ch='a';ch<='z';ch++)
printf("Beличинa кода ASCII для %с равна %d.\n",ch,ch);
4) можно проверить выполнение некоторого произвольного условия, отличного от условия, налагаемого на число итераций
for(num=l;num*num*num<216;num++)
5) можно сделать так, чтобы значение некоторой величины возрастало не в арифметической, а в геометрической прогрессии
for(n=l;n<1500;n*=3)
printf("-%d \n",n);
6) в качестве третьего выражения можно использовать любое правильно составленное выражение; какое бы выражение вы ни указали, его значение будет меняться при каждой итерации
for(x= I ;у<=75;у=5*(х++)+10)
printf("%d, %d\n",x,y);
7) можно даже опустить одно или более выражений (но при этом нельзя опускать символы ";"); необходимо только включить в тело цикла несколько операторов, которые в конце концов приведет к завершению его работы
ans=2;
for(n=3;ans<=25;)
ans=ans*n;
Тело цикла for(;;)
printfC"* \n");
будет выполняться бесконечное число раз, поскольку пустое условие всегда считается истинным;
8) первое выражение не обязательно должно инициализировать переменную; вместо этого, например, там мог бы стоять оператор printf() некоторого специального вида; необходимо помнить, что первое выражение вычисляется только один раз перед тем, как остальные части цикла начнут выполняться