Оператор for
Оператор for - это наиболее общий способ организации цикла. Он имеет следующий формат:
for ( выражение 1 ; выражение 2 ; выражение 3 ) тело
Выражение 1 обычно используется для установления начального значения переменных,
управляющих циклом. Выражение 2 - это выражение, определяющее условие, при котором тело
цикла будет выполняться. Выражение 3 определяет изменение переменных, управляющих циклом
после каждого выполнения тела цикла.
Схема выполнения оператора for:
1. Вычисляется выражение 1.
2. Вычисляется выражение 2.
3. Если значения выражения 2 отлично от нуля (истина), выполняется тело цикла,
вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 равно нулю
(ложь), то управление передается на оператор, следующий за оператором for.
Существенно то, что проверка условия всегда выполняется в начале цикла. Это значит, что
тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным.
Пример:
int main()
{ int i,b;
for (i=1; i<10; i++) b="i*i;" return 0; }
В этом примере вычисляются квадраты чисел от 1 до 9.
Некоторые варианты использования оператора for повышают его гибкость за счет возможности
использования нескольких переменных, управляющих циклом.
Пример:
int main()
{ int top, bot;
char string[100], temp;
for ( top=0, bot=100 ; top < bot ; top++, bot--)
{ temp=string[top];
string[bot]=temp;
}
return 0;
}
В этом примере, реализующем запись строки символов в обратном порядке, для управления
циклом используются две переменные top и bot. Отметим, что на месте выражение 1 и
выражение 3 здесь используются несколько выражений, записанных через запятую, и
выполняемых последовательно.
Другим вариантом использования оператора for является бесконечный цикл. Для организации
такого цикла можно использовать пустое условное выражение, а для выхода из цикла обычно
используют дополнительное условие и оператор break.
Пример:
for (;;)
{ ...
... break;
...
}
Так как согласно синтаксису языка Си оператор может быть пустым, тело оператора for
также может быть пустым. Такая форма оператора может быть использована для организации
поиска.
Пример:
for (i=0; t[i]<10 ; i++);
В данном примере переменная цикла i принимает значение номера первого элемента массива
t, значение которого больше 10.