Читайте также: |
|
Оператор цикла REPEAT, известный как оператор цикла с постусловием, имеет такой вид:
repeat S until P;
Работа оператора определяется следующей схемой:
При выполнении этого оператора сначала выполняется тело цикла (S), затем вычисляется некоторое логическое выражение P(условие), принадлежащее типу Boolean, в случае ложности которого вновь выполняется тело цикла. Затем выполнение тела цикла, вычисление условия P и его проверка повторяются до тех пор, пока выражение Pне становится равным TRUE. После этого управление передаётся следующему (за REPEAT) оператору в программе.
Оператор REPEAT отличается от оператора WHILE, во-первых, тем, что здесь условие проверяется после выполнения тела цикла. Иными словами, гарантируется хотя бы однократное его выполнение. Во-вторых, оператор REPEAT выполняется до тех пор, пока условие равно FALSE, и управление передается следующему (за REPEAT) оператору, когда условие становится равным TRUE (для оператора WHILE имеет место обратная зависимость).
Даже если условие р равно TRUE с самого начала, тело цикла выполнится хотя бы раз. Если условие р тождественно FALSE (repeat s until false), цикл будет бесконечным.
Для того чтобы понять разницу между операторами цикла WHILE и REPEAT, рассмотрим соответствующие фрагменты программ, вычисляющих степени числа 3 в диапазоне между 1 и 300.
Цикл WHILE Цикл REPEAT
a:=3: a:=3;
while a<300 do repeat
begin WritteLn (a);
WritteLn (a); a:=a*3
a:=a*3 until a>=300;
End;
Прежде всего бросается в глаза, что условия повторения цикла для двух случаев противоположны. Это объясняется тем, что в операторе WHILE цикл выполняется, пока условие не примет значение FALSE, а в операторе REPEAT – пока условие не примет значение TRUE.
Так же следует обратить внимание на то, что тело цикла REPEAT не требуется заключать в операторные скобки BEGIN… END. Если в операторе WHILE после ключевого слова DO выполняется единственный оператор (и если требуется циклически выполнять несколько действий, приходится несколько операторов объединять в составной оператор), то в операторе REPEAT между ключевыми словами REPEAT и UNTIL можно ввести любое количество операторов, без необходимости заключать их в операторные скобки.
Наконец в операторе REPEAT после последнего оператора в теле цикла нет точки с запятой. Это ещё одна особенность оператора REPEAT—перед ключевым словом UNTIL точка с запятой необязательна.
Дата добавления: 2015-07-08; просмотров: 422 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Оператор циклаWHILE. | | | Задача 7. |