Глава 10. Написание выражений________________________________233

символ вводимой строки был бы пропущен. А если бы был использован префиксный инкремент? Тогда сначала бы был увеличен указатель, а уже после этого было бы проверено значение выражения. Это совсем не то, что мы хотели получить.

Наконец, обратите внимание на значение count после каждого внутреннего цикла while. Весьма обычным делом является ошибиться на единицу, например, переменной count можно ошибочно присвоить значение, равное количеству символов в строке з, включая завершающий нуль.

do

Оператор do — это оператор цикла, похожий на while. Единственное отличие состоит в том, что проверка условия происходит не в начале, а в конце цикла. Таким образом, тело цикла обязательно выполняется, по крайней мере, один раз. Например:

int i, total =0; • do {

cout « "Введите число (0 — выход из программы). \п";

cin » i;

total += i;

} while (i) ;

cout « "Итого: " « total « endl;

Пользователю хотя бы раз надо предложить ввести число. Цикл do в данном случае подходит больше всего. На листинге 10.6 дан пример двух простых циклов: первый — цикл while, второй — do.

h02331.jpg

#include <iostream.h>

void main() {

int count = 0;

while (count++ < 10)

cout « "счетчик цикла while: " « count « endl;

count = 0;

do

cout « " счетчик цикла do: " « count « endl;

while (count++ < 10);

}

Результат действия программы из листинга 10.6:

счетчик цикла while: 1234567.8910 счетчик цикла do: 012345678910