Оператор цикла Repeat..until

Оператор цикла Repeat. . until организует выполнение любого

I количества операторов неизвестное заранее число раз.

Repeat

оператор_1;

оператор_2;

оператор-N;

Until логическое_выражение;

Запись данного оператора читается: повторять (Repeat) операторы до тех пор, пока (Until) логическое выражение не станет истинно (True).

Цикл Repeat, .until похож на While, .do тем, что также выполняется неизвестное заранее число раз, и поэтому большинство задач можно решить как при помощи одного цикла, так и при помощи другого. Цикл Repeat. . until имеет следующие существенные отличия от цикла While. • do:

  • 1) В операторе Repeat. . until проверка условия выхода выполняется в конце, а не в начале цикла.
  • 2) Как следствие первого отличия, тело цикла Repeat, .until всегда выполняется хотя бы один раз.
  • 3) В операторе Repeat, .until условие выхода удовлетворяется, если выражение истинно, а в операторе While, .do —если ложно.
  • 4) Между ключевыми словами Repeat и Until можно поместить любое количество операторов (без использования составного оператора), а в операторе While, .do тело цикла должно содержать только один оператор (либо использоваться составной оператор).

Цикл Repeat, .until называют ещё циклом с постусловием (рис. 2.12).

Блок-схема оператора цикла Repeat

Рис. 2.12 - Блок-схема оператора цикла Repeat

...................... Пример 2.15 .....................

В данном примере решим ту же задачу, что и в примере 2.14, но с использованием оператора цикла Repeat, .until.

//Программа вычисления суммы ряда

Program sum of_series_2;

Const min_term=0.005; //Минимальное значение члена ряда Var sum, term: Real; {Сумма и член ряда, переменные вещественного типа} i: Integer; {порядковый номер слагаемого, переменная целого типа}

Begin

sum:=0; //Обнуление переменной суммы i:=0; //Обнуление параметра цикла Repeat

i:=i+l; //Увеличение параметра ряда на единицу term:=i/(i*i+5*i-l); {Вычисление очередного слагаемого} sum:=sum+term; //Приращение суммы

Until term

WriteLN ('Сумма ряда sum: 0: 3);

WriteLN ('Количество просуммированных членов ряда i); ReadLN;

End. //Конец программы

В результате исполнения данной программы на экране будет то же, что и при исполнении программы sum of_series_l из примера 2.14.

Часто бывает удобно использовать следующую конструкцию с оператором Repeat., until. В разделе объявления переменных необходимо описать какую-либо переменную символьным типом, например:

Var ch: Char;

Все операторы, направленные на решение какой-либо задачи, помещаются в тело цикла:

Begin//Начало любой программы

Repeat //Начало цикла

//Операторы, решающие любую задачу

WriteLN ('Для завершения программы введите пробел');

WriteLN ('Для продолжения программы введите любой символ') ;

ReadLN (ch);

Until ch=F '; //Конец цикла

End. //Конец программы

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >