×
Traktatov.net » Язык программирования C++. Пятое издание » Читать онлайн
Страница 12 из 714 Настройки

1.4.1. Оператор >while

Оператор>while организует итерационное (циклическое) выполнение фрагмента кода, пока его условие остается истинным. Используя оператор >while, можно написать следующую программу, суммирующую числа от >1 до >10 включительно:

>#include

>int main() {

> int sum = 0, val = 1;

> // продолжать выполнение цикла, пока значение val

> // не превысит 10

> while (val <= 10) {

>  sum += val; // присвоить sum сумму val и sum

>  ++val;      // добавить 1 к val

> }

> std::cout << "Sum of 1 to 10 inclusive is "

>           << sum << std::endl;

> return 0;

>}

Будучи откомпилированной и запущенной на выполнение, эта программа отобразит на экране следующий результат:

>Sum of 1 to 10 inclusive is 55

Как и прежде, программа начинается с включения заголовка >iostream и определения функции >main(). В функции >main() определены две переменные типа >int>sum, которая будет содержать полученную сумму, и >val, которая будет содержать каждое из значений от 1 до 10. Переменной >sum присваивается исходное значение >0, а переменной >val — исходное значение >1.

Новой частью программы является оператор >while, имеющий следующий синтаксис.

>while (условие)

> оператор

Оператор >while циклически выполняет >оператор, пока >условие остается истинным. >Условие — это выражение, результатом выполнения которого является истина или ложь. Пока >условие истинно, оператор выполняется. После выполнения >оператора условие проверяется снова. Если >условие остается истинным, >оператор выполняется снова. Цикл >while продолжается, поочередно проверяя >условие и выполняя >оператор, пока >условие не станет ложно.

В этой программе использован следующий оператор >while:

>// продолжать выполнение цикла, пока значение val

>// не превысит 10

>while (val <= 10) {

> sum += val; // присвоить sum сумму val и sum

> ++val;      // добавить 1 к val

>}

Для сравнения текущего значения переменной >val и числа >10 условие цикла использует оператор меньше или равно (оператор><=). Пока значение переменной >val меньше или равно >10, условие истинно и тело цикла >while выполняется. В данном случае телом цикла >while является блок, содержащий два оператора.

>{

> sum += val; // присвоить sum сумму val и sum

> ++val;      // добавить 1 к val

>}

Блок (block) — это последовательность из любого количества операторов, заключенных в фигурные скобки. Блок является оператором и может использоваться везде, где допустим один оператор. Первым в блоке является составной оператор присвоения (compound assignment operator), или оператор присвоения с суммой (оператор>+=). Этот оператор добавляет свой правый операнд к левому операнду. Это эквивалентно двум операторам: суммы и присвоения.

>sum = sum + val; // присвоить sum сумму val и sum

Таким образом, первый оператор в блоке добавляет значение переменной >val к текущему значению переменной sum и сохраняет результат в той же переменной >sum.

Следующее выражение использует префиксный оператор инкремента (prefix increment operator) (оператор>++), который осуществляет приращение:

>++val; // добавить 1 к val

Оператор инкремента добавляет единицу к своему операнду. Запись