Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Оператор циклу for



Оператор 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; Прочитано: 356 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...