Урок 5.8. Оператор цикла do while
5.8. Оператор цикла do while
Оператор цикла do while имеет следующую форму записи:
do <оператор> while(<выражение>); |
Оператор do while работает следующим образом: сначала выполняется <оператор>, а затем вычисляется значение <выражение> . Если значение <выражение> истинно, то <оператор> выполняется повторно, если <выражение> ложно, то выполнение цикла завершается. Алгоритмическая схема выполнения do while представлена на рис. 5.5.
Рис. 5.5. Алгоритмическая схема выполнения do while.
Оператор do while определяет цикл с постусловием, поскольку проверка на необходимость повторного выполнения <оператор> осуществляется после отработки тела цикла и, таким образом, тело цикла всегда выполняется, по меньшей мере – единожды. Аналогично, как и для цикла while, программист должен позаботиться о завершении цикла путем изменения переменной(условия) цикла либо в теле цикла, либо в <выражение> для while.
Примеры, приведенные в предыдущем разделе 5.7, перепишем с использованием оператора do while.
// 1. Изменение переменной цикла в <выражение>: int n = 1; float y = 0; do y +=n/(n+5.0); while (++n <= 50); // 2. Изменение переменной цикла в <оператор>: int n = 1; float y = 0; do { y += n/(n + 5.0); ++n; } while (n <= 50); // 3. Внесение <оператор> в состав <выражение>: int n = 1; float y = 0; do ; /* тело цикла - пустой оператор */ while (y += n/(n + 5.0), ++n, n <= 50); // 4. Вложенные циклы: int i = 1, j; double y = 0; do { j = 1; do { y += 1/(i + sqrt((double)j)); }while (++j <= 50); }while (++i <= 100); |
// 5. Прерывание выполнения цикла оператором break; : float sum; int N; sum = 0,N = 1; do { sum += N/(N + 1.0); if (sum > 25.0) break; N++; } while (N <= 100); |
Таким образом, оператор do while действует точно так же, как и оператор while, за исключением того, что тело цикла всегда выполняется хотя бы один раз.
Оставить комментарий