Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+ООП_Навч_посібник.doc
Скачиваний:
9
Добавлен:
01.07.2025
Размер:
7 Мб
Скачать
☆

4.4.2. Ітераційна настанова do-while

Цикл do-while – це єдиний цикл, який завжди робить ітерацію хоч би один раз.

На відміну від циклів for і while, у яких умова перевіряється під час входу, цикл do-while перевіряє умову при виході з циклу. Це означає, що цикл do-while завжди виконується хоч би один раз. Його загальний формат має такий вигляд:

do {

настанови;

} while(вираз);

Хоча фігурні дужки є необов'язковими, якщо елемент настанови складається тільки з однієї настанови, то вони часто використовують для поліпшення читабельності конструкції do-while, не допускаючи тим самим плутанини з циклом while. Цикл do-while виконується доти, доки залишається істинним елемент вираз, який є умовним виразом.

У наведеному нижче коді програми цикл do-while виконується доти, доки користувач не введе число 100.

Код програми 4.14. Демонстрація механізму використання настанови організації циклу do-while

#include <iostream> // Для потокового введення-виведення

using namespace std; // Використання стандартного простору імен

int main()

{

int num;

do {

cout << "Введіть число (100 – для виходу): ";

cin >> num;

} while(num != 100);

getch(); return 0;

}

Використовуючи цикл do-while, ми можемо ще більше удосконалити програму "Вгадай магічне число". Цього разу програма "не випустить" Вас з циклу вгадування, поки Ви не вгадаєте це число.

Код програми 4.15. Демонстрація програми "Вгадай магічне число": третє удосконалення

#include <iostream> // Для потокового введення-виведення

#include <cstdlib> // Для використання бібліотечних функцій

using namespace std; // Використання стандартного простору імен

int main()

{

int magic; // Магічне число

int guess; // Варіант користувача

magic = rand(); // Отримуємо випадкове число.

do {

cout << "Введіть свій варіант магічного числа: ";

cin >> guess;

if(guess == magic) {

cout << "** Правильно ** ";

cout << magic << " і є те саме магічне число.\n";

}

else {

cout << "Дуже шкода, але Ви помилилися.";

if(guess > magic)

cout << "Ваш варіант перевищує магічне число.\n";

else

cout << "Ваш варіант менше магічного числа.\n";

}

} while(guess != magic);

getch(); return 0;

}

4.4.3. Використання настанови переходу continue

Настанова continue дає змогу негайно перейти до виконання наступної ітерації циклу.

У мові програмування C++ існує засіб "дострокового" виходу з поточної ітерації циклу. Цим засобом є настанова continue. Вона примусово виконує перехід до наступної ітерації, опускаючи виконання коду програми, що залишився, в поточній. Наприклад, у наведеному нижче коді програми настанову continue використовують для "прискореного" пошуку парних чисел в діапазоні від 0 до 100.

Код програми 4.16. Демонстрація механізму використання настанови переходу continue

#include <iostream> // Для потокового введення-виведення

using namespace std; // Використання стандартного простору імен

int main()

{

int x;

for(x=0; x<=100; x++) {

if(x%2) continue;

cout << x << " ";

}

getch(); return 0;

}

У цій програмі виводяться тільки парні числа, оскільки внаслідок виявлення непарного числа відбувається передчасний перехід до наступної ітерації, і cout-настанова опускається.

У циклах while і do-while настанова continue передає керування безпосередньо настанові, що перевіряє умовний вираз, після чого циклічний процес триває. А в циклі for після виконання настанови continue спочатку обчислюється інкрементний вираз, а потім – умовний. І тільки після цього циклічний процес буде продовжено.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]