Статья: Операторы цикла

END.

оказывается зацикленной.

Третий тип цикла - REPEAT - записывается в виде:

REPEAT операторы UNTIL логическое выражение;

Если тело цикла REPEAT содержит больше одного оператора, нет необходимости использовать блок, поскольку сами ключевые слова REPEAT и UNTIL являются в данном случае логическими скобками. Перед UNTIL можно не ставить ";". Цикл REPEAT выполняется так : сначала выполняется тело цикла, затем вычисляется логическое выражение, и если оно истинно, цикл заканчивается. Таким образом, цикл REPEAT всегда выполняется хотя бы один раз и так же, как и WHILE, подвержен зацикливанию. Запишемнашипримерыциклом REPEAT :

CONST i : Word = 1; Real = 0; N = 22;

BEGIN REPEAT s:=s+SQR(i); INC(i) UNTIL i>N;

WRITELN('сумма=',s);

END.

VAR c : Char;

BEGIN c:=Pred(' ');

REPEAT c:=Succ(c); WRITE(c) UNTIL c=#255;

WRITELN;

END.

Из приведенных примеров очевидно, что любой циклический алгоритм можно записать любым видом цикла, все они взаимозаменяемы и выбираются программистом в соответствии с его вкусами, однако можно порекомендовать в тех случаях, когда количество шагов цикла известно заранее, использовать цикл FOR.

В последней версии языка Паскаль появились процедуры BREAK и CONTINUE, аналогичные операторам break и continue языка С. Процедура BREAK приводит к немедленному окончанию цикла, в котором она вызвана. Вызов процедуры CONTINUE приводит к немедленному переходу к следующему шагу цикла. Запишемнашипримеры, используя BREAK :

CONST i : Word = 1; s : Real = 0; N = 22;

BEGIN WHILE TRUE DO BEGIN

s:=s+SQR(i); INC(i); IF i>N THEN BREAK; END;

WRITELN('сумма=',s);

END.

VAR c : Char;

BEGIN c:=Pred(' ');

REPEAT c:=Succ(c); WRITE(c); IF c=#255 THEN BREAK UNTIL FALSE;

WRITELN;

END.

Чтобы привести осмысленный пример использования процедуры CONTINUE, изменим условие второй задачи следующим образом: вывести на экран все символы с 32-го по 255-й, не являющиеся русскими буквами.

VAR c : Char;

BEGIN FOR c:=' ' TO #255 DO BEGIN

К-во Просмотров: 211
Бесплатно скачать Статья: Операторы цикла