![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Оператор for забезпечує циклічне повторення деякого оператора певне число разів. Оператор, який повторюється називається тілом циклу. Повторення циклу звичайно здійснюється з використанням деякої змінної (лічильника), яка змінюється при кожному виконанні тіла циклу. Повторення завершується, коли лічильник досягає заданого значення.
Синтаксис оператора:
for([ініціалізація];[перевірка_умови];[нове_значення])
оператор;
Рис. 1.9. Синтаксис оператора for
Звернемо увагу на те, що кожен з трьох виразів може бути відсутнім. Перший вираз служить для ініціалізації лічильника, другий - для перевірки кінця циклу, а третій вираз - для зміни значення лічильника. Формально роботу циклу можна описати такими кроками:
1. якщо перший вираз (ініціалізація) присутній, то він обчислюється;
2. обчислюється вираз умови (якщо він присутній). Якщо умова виробляє значення 0, тобто вона невірна, цикл припиняється, у протилежному випадку він буде продовжений;
3. виконується тіло циклу;
4. якщо присутній вираз зміни лічильника, то він обчислюється;
5. надалі перехід до пункту під номером 2.
Поява у будь-якому місці циклу оператора continue призведе до негайного переходу до пункту 4.
Приклад використання циклу for:
/* друк парних чисел у проміжку від 500 до 0 */
#include <stdio.h>
void main(void)
{
long i;
for(i=500;i>=0;i-=2)
printf("\n%ld",i);
printf("\n");
}
Для того, щоб продемонструвати гнучкість даного різновиду циклу, розглянемо інші варіанти цієї ж програми. У першому випадку представимо весь перелік обчислень лише в одному операторі for, за яким слідує порожній оператор:
#include <stdio.h>
int main(void)
{
long i;
for(i=500;i>=0;printf("\n%ld",i),i-=2);
}
Другий варіант використовує оператор continue:
#include <stdio.h>
int main(void)
{
long i;
for(i=500;i>=0;i--)
if (i%2 == 1)
continue;
else
printf("\n %ld", i);
printf("\n");
}
Справа програміста, який з варіантів обрати - надати перевагу більш стислому викладанню або навіть взагалі скористатися іншим оператором. Цікаво, що різновид циклу for можна звести до циклу while наступним чином:
for(вираз1;вираз2;вираз3)
оператор;
/* далі - аналогічний цикл while */
вираз1;
while (вираз2)
{
оператор;
вираз3;
}
Інша справа - чи є в такій заміні необхідність? Не завжди гнучкість переважає стислість та навпаки. Справа за конкретною ситуацією. Зрештою, вибір циклу може бути й справою смаку конкретного програміста - саме йому вирішувати, які оператори застосувати для вірного запису того чи іншого алгоритму.
Дата публикования: 2015-01-23; Прочитано: 370 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!