Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л4. Оператори циклу_Вказ_вники.doc
Скачиваний:
2
Добавлен:
21.09.2019
Размер:
87.55 Кб
Скачать

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

У С/C++ є такі конструкції, які дозволяють програмувати цикли: while, do while і for. Їхню структуру можна описати в такий спосіб:

1) цикл із передумовою (перевіркою умови перед виконанням циклу)

while (вираз) оператор тіла циклу;

Цикл while перевіряє, чи вираз є істинним, і якщо так, то виконує оператор поки значення виразу не зміниться. При виконанні циклу з передумовою тіло циклу може не виконуватись ні разу (0), якщо умова з самого початку дає результат "фальш".

Виразом може бути довільний логічний вираз, стала або змінна цілого типу. Якщо треба перевірити декілька умов, то застосовують команду "кома". Оператор тіла циклу може бути порожнім, простим або складеним. Для того, щоб відбувся вихід із циклу, необхідно змінювати значення параметра циклу всередині тіла циклу. Параметр циклу - це дане, яке входить у вираз.

Команда while може бути виконана один раз, декілька разів або не бути виконана жодного разу.

2) цикл із післяумовою (перевіркою умови після виконання циклу)

do оператор тіла циклу; while (вираз);

Цикл do… while виконує оператор поки умова (логічний_вираз) є істинною. При виконанні циклу з післяумовою, на відміну від попередного, тіло циклу обов’язково виконується хоча б один раз, навіть, якщо умова з самого початку дає результат "фальш" (0);

3) цикл із параметрами:

for (ініціалізація; вираз; модифікація) оператор;

ініціалізація – присвоєння початкових значень змінним, які використовуються в циклі. Може бути кілька оголошень

вираз – задає умову завершення циклу (типу bool).

модифікація – зміна параметрів циклу.

Якщо при ініціалізації та модифікації необхідно виконати декілька дій, то використовують команду "кома". Ініціалізація та модифікація або одне із них у команді for можуть бути відсутні. У цьому випадку опускати символ ";" не можна. Наприклад, for(; і<10 ;) і++;.

Приклад 1. Суму цілих чисел з проміжку від 1 до 15 можна обчислити одним із способів:

1) int n = 1, S = O;

for (; n < 16; n++) S += n;

  1. for (int n = 1, S = 0; n < 16; n++) S+=n;

  2. for (int n = 1, S = 0; n< 16; S+=n++);

  3. for (int n = 1, S = 0; n< 16; S+=n, n++);

У результаті виконання команд змінній S буде присвоєно значення 120. Зауважимо, що у способі 4) змінні Sin ініціалізовано (оголошено) безпосередньо у команді циклу for.

Цикл із параметрами є найуніверсальнішим, може використовуватись у більшості випадків і заміняти собою інші види циклів. Найпоширенішим є використання циклу for тоді, коли потрібно змінювати значення цілого параметру від початкового до кінцевого значення з певним кроком, наприклад, при індексуванні масивів: for (i=0; i<n; i++) a[i]=0;

Приклад 2. Знаходження дільників цілого числа.

# include <iostream.h>

void main ()

{

int num;

cin >> num;

int half = num/2;

int div=2;

while (div<=half)

{ if (!(num % div))

cout << div << endl;

div ++;

}

}

Для переривання повторень оператора циклу будь-якого типу в тілі циклу може бути використаний оператор break. Для переходу до наступного повторенню циклу з будь-якого місця тіла циклу може бути застосований оператор continue. Ці оператори по своєму призначенню аналогічні відповідним операторам мови Паскаль.

Незважаючи на те, що С++ містить повний набір операторів для структурного програмування, у нього усе-таки включений оператор переходу:

goto мітка ;

Мітка задає адресу переходу і повинна позначати оператор у том ж складеному операторі, якому належить оператор goto. Вхід у складений оператор, що містить об’явлення даних, не через його початок, заборонений.