• Главная
  • Карта сайта
Не найдено

Цикл do while в C ++

Цикл do while відрізняється від циклу while тим, що в do while спочатку виконується тіло циклу, а потім перевіряється умова продовження циклу. Через таку особливість do while називають циклом з умовою поста. Таким чином, якщо умова do while завідомо неправдиве, то хоча б один раз блок операторів в тілі циклу do while виконається. В результаті do while відрізняється від циклу while структурою. Якщо в while спочатку виконується перевірка умови продовження циклу, і якщо умова істинна, то тільки тоді виконується тіло циклу. цикл do while працює з точністю до навпаки, спочатку виконується тіло циклу, а потім перевіряється умова, ось чому тіло циклу do while, хоча б раз, виконається.

// форма запису оператора циклу do while: do // початок циклу do while {/ * блок операторів * /; } While (/ * умова виконання циклу * /); // кінець циклу do while

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

// do_while.cpp: визначає точку входу для консольного застосування. #include "stdafx.h" #include <iostream> #include <ctime> using namespace std; int main (int argc, char * argv []) {srand (time (0)); int balance = 8; // баланс do // початок циклу do while {cout << "balance =" << balance << endl; // показати баланс int removal = rand ()% 3; // змінна, для зберігання від'ємника значення cout << "removal =" << removal << endl; // показати від'ємник значення balance - = removal; // управління умовою} while (balance> 0); // кінець циклу do while system ( "pause"); return 0; }

У рядку 11 оголошена змінна balance, вона відповідає за залишок грошових коштів на рахунку. З 12-ї по 19-ю рядки записаний цикл do while. В циклі do while виконуються всі транзакції з рахунком balance, а саме - переказ грошових коштів на якийсь інший рахунок, рядок 17. Рядок 14 показує залишок грошових коштів на рахунку balance. У рядку 15 оголошена змінна, в якій зберігається від'ємник значення, причому це значення генерується випадково в інтервалі [0; 2]. Мінлива removal один раз оголошується в тілі циклу do while, і кожен раз при повторенні циклу ця змінна не переопределяется. А ось її значення змінюється, в залежності від того, яка кількість згенерованих. У рядку 19 записано умова циклу do while, як тільки умова стане хибним, програма передасть управління наступному оператору, після циклу do while, рядок 20. Результат роботи програми показаний на малюнку 1.

Результат роботи програми показаний на малюнку 1

Малюнок 1 Цикл do while в C ++

Спочатку показаний залишок, а потім зняття суми, після чого знову йде залишок і так до тих пір, поки на рахунку не виявиться грошей. Останньою виведеної рядком виявилася рядок зі знімається сумою, а потім цикл завершив свою роботу. Хоча і не видно останнього залишку на рахунку, можна і так сказати, що він дорівнює 0.

Згадаймо програму «Вгадай число», з розділу: Цикл while в C ++ . У цьому завданні правильніше було б використовувати цикл do while, код зменшиться на два рядки.

// ygadai2.cpp: визначає точку входу для консольного застосування. #include "stdafx.h" #include <iostream> #include <ctime> using namespace std; int main (int argc, char * argv []) {srand (time (0)); int unknown_number = 1 + rand ()% 10; // загадувати число int enter_number; // змінна для зберігання введеного числа do {cout << "Enter unknown number [1:10]:"; cin >> enter_number; // відгадують} while (enter_number! = Unknown_number); cout << "You win !!! \ n"; system ( "pause"); return 0; }

Так як while - цикл з передумовою, то нам необхідно було спочатку вважати число перед початком while, а потім вже виконувати перевірку продовження циклу while. У випадку з do while нам не потрібно зчитувати число до початку циклу, так як перевірка умови в do while йде в кінці циклу. Залежно від ситуації, використовується цикл while або do while, вони один одного доповнюють.

Для закріплення матеріалу, розробимо ще одну програму, яка обчислює суму чисел в заданому інтервалі.

// dowhile.cpp: визначає точку входу для консольного застосування. #include "stdafx.h" #include <iostream> using namespace std; int main (int argc, char * argv []) {cout << "Enter the first limit:"; // початкове значення з інтервалу int first_limit; cin >> first_limit; cout << "Enter the second limit:"; // кінцеве значення з інтервалу int second_limit; cin >> second_limit; int sum = 0, count = first_limit; do {sum + = count; // нарощування суми count ++; // інкремент початкового значення з задається інтервалу} while (count <= second_limit); // кінець циклу do while cout << "sum =" << sum << endl; // друк суми system ( "pause"); return 0; }

Після запуску програми необхідно ввести межі інтервалу, перший і другий. Після цього починає працювати цикл do while, рядок 13. змінна sum призначена для зберігання накопичуваної суми, рядок 15. У рядку 16 инкрементируется початкове значення межі, після кожного повторення циклу. Результат роботи програми (див. Малюнок 2).

Малюнок 2 Цикл do while в C ++

Інтервал вказано від -6 до 10 включно, [-6; 10]. Програма підсумовує всі цілі числа із заданого інтервалу. Сума формується так: -6 -5 -4 -3 -2 -1 + 0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 = 34. Таким чином, циклічно виконується дія підсумовування всіх цілих чисел з, зазначеного користувачем, інтервалу.

Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью