Оператор 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.