ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 3) онлайн
Цикл do
В цикле while условие продолжения выполнения цикла помещалось в начало цикла. Это означало, что в случае невыполнения условия при первой проверке тело цикла вообще не исполнялось. В некоторых случаях это целесообразно, но возможны и ситуации, когда необходимо выполнить тело цикла хотя бы один раз вне зависимости от истинности проверяемого условия. Для этого следует ис- пользовать цикл do, в котором условие продолжения цикла располагается не пе- ред, а после тела цикла.
Наш следующий пример DIVDO выводит приглашение ввести два числа: дели- мое и делитель, а затем производит целочисленное деление с использованием операций / и % и выводит полученные частное и остаток.
// divdo.cpp // применение цикла do #include <iostream> using namespace std;
int main() {
long dividend, divisor; char ch;
do // начало цикла do
{ // действия
cout << "Введите делимое: " ; cin >> dividend; cout << "Введите делитель: " ; cin >> divisor; cout << "Частное равно " << dividend / divisor; cout << ", остаток равен " << dividend % divisor;
cout << "\nЕще раз?(y/n); ";
cin >> ch; }
while(ch != 'n'); // условие цикла return 0;
}
Большая часть программы находится в составе тела цикла do. Ключевое сло- во do обозначает начало цикла. Затем, как и в других циклах, следует тело, об- рамленное фигурными скобками. Завершает цикл условие продолжения, описы- ваемое с помощью ключевого слова while. Это условие похоже на условие цикла while, но у него есть два отличия: оно располагается в конце цикла и завершает- ся точкой с запятой (;). Синтаксис цикла do показан на рис. 3.5.
Перед тем как производить вычисление, программа DIVDO спрашивает поль- зователя, хочет ли он произвести это вычисление. Если в ответ программа полу- чает символ 'y', то выражение
ch != 'n'
сохраняет значение true. В случае, если пользователь вводит 'n', условие продол- жения цикла не выполняется и происходит выход из цикла. На рис. 3.6 приве- дена схема функционирования цикла do.
Вот пример возможного вывода программы DIVDO:
Введите делимое: 11
Введите делитель: 3
Частное равно 3, остаток равен 2
Еще раз? (y/n): у
Введите делимое: 222
Введите делитель: 17
Частное равно 13, остаток равен 1
Еще раз? (y/n): n
Рис. 3.5. Синтаксис цикла do


Рис. 3.6. Исполнение цикла do
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
