делать условие цикла while ложным, иначе цикл будет бесконечным, а это, в
свою очередь,
приведет к зависанию программы.
Рассмотрим применение цикла while на примере движения автомобиля. На псевдокоде, то
это будет так:
// Пока скорость движения автомобиля меньше 60 км/ч, продолжать наращивать скорость.
Истинным условием цикла, в данном случае, является скорость автомобиля меньше 60 км/ч,
а ложным — скорость автомобиля больше или равно 60 км/ч. Повторение цикла будет
продолжаться до тех пор пока скорость автомобиля не станет больше или равно 60 км/ч, после
наступления этого момента условие цикла станет ложным, и программа выйдет из цикла.
Рассмотрим фрагмент кода на C++ с циклом while решающим поставленную задачу.
int speed = 5, count = 1;
while ( speed < 60 )
{
speed += 10; // приращение скорости
cout << count <<"-speed = " << speed << endl;
count++; // подсчёт
повторений цикла
}
Цикл 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, которая выполняет некоторые транзакции с
денежным счётом в банке.
int balance = 8; // баланс
do // начало цикла do while
{
cout << "balance = " << balance << endl; // показать баланс
int removal = rand() % 3; // переменная, для хранения вычитаемого
значения
cout << "removal = " << removal << endl; // показать вычитаемое значение
balance -= removal; // управление условием
}
Так как while — цикл с предусловием, то нам необходимо было сначала считать число перед
началом while, а потом уже выполнять проверку продолжения цикла while. В случае с do while нам
не нужно считывать число до начала цикла, так как проверка условия в
do while идет в конце
цикла. В зависимости от ситуации, используется цикл while или do while, они друг друга
дополняют.
Достарыңызбен бөлісу: