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