Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Язык C++ предусматривает три типа структур повторения (цикла) в форме операторов for, while и do..while, которые позволяют программам многократно выполнять некоторые действия, пока условие (называемое условием продолжения цикла) остается истинной. Операторы for и while выполняют действие (или группу действий) в своем теле 0 или большее число раз. Оператор do..while по крайней мере один раз выполняет действие в своем теле.
Оператор цикла while
Оператор while имеет следующий синтаксис:
while (условие)
оператор;
Если условие истинно (возвращает значение true), то выполняется оператор, после чего условие проверяется снова. Так будет продолжаться до тех пор, пока условие не станет ложным (значение false): тогда цикл while завершится, а выполнение программы продолжится со следующей строки.
Листинг 3.3 демонстрирует оператор while. Условие, проверяемое в операторе while, может быть таким же сложным, как и любое другое выражение языка C++. Оно может состоять из нескольких выражений, объединенных логическими операторами && (AND — И), | | (OR — ИЛИ) и! (NOT — HE).
Листинг 3.3. Пример использования оператора while
1. #include <iostream>
2. using namespace std;
3. int main()
4. {
5. unsigned short small;
6. unsigned long large;
7. const unsigned short MAXSMALL=65535;
8.
9. cout << "Enter a small number: ";
10.cin >> small;
11.cout << "Enter a large number: ";
12.cin >> large;
13.
14.cout << "small: " << small << "...";
15.
16.// при каждой итерации проверять два условия
17.while (small < large && small < MAXSMALL)
18.{
19. // после каждых 5000 строк выводить точку
20. if (small % 5000 == 0)
21. cout << ".";
22.
23. small++;
24. large-=2;
25.}
26.cout << "\nSmall: " << small << " Large: "
27. << large << endl;
28.return 0;
29.}
Результат
Enter a small number: 2
Enter a large number: 100000
small: 2…….
Small: 33335 Large: 33334
Анализ
Это простая игра. Введите два числа. Затем меньшее число (small) начнет увеличиваться на единицу, а большее (large) — уменьшаться на два до тех пор, пока они не "встретятся". Цель игры: угадать число, на котором значения "встретятся".
В строках 9—12 осуществляется ввод значений. В строке 17 проверяются два условия продолжения цикла:
1. меньшее число меньше большего (small < large);
2. меньшее число меньше максимально допустимого (small < MAXSMALL).
В строке 20 вычисляется остаток от деления числа small на 5000, причем значение переменной small не изменяется. Если small делится на 5000 без остатка и в результате получается 0, то на экран выводится точка. Затем в строке 23 значение переменной small увеличивается на 1, а в строке 24 значение large уменьшается на 2.
Цикл завершается, когда хотя бы одно из условий перестает выполняться. После этого управление передается в строку 26, следующую за телом цикла.
Дата публикования: 2015-11-01; Прочитано: 1084 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!