Оператор цикла с предусловием

Repeat

Оператор цикла с постусловием

Оператор цикла с параметром

Оператор цикла с параметром имеет два формата:

for <Параметр>:= <Выражение1> to <Выражение2> do <0ператор>;

и

for <Параметр>:= <Выражение1> downto <Выражение2> do <0ператор>;

Параметр цикла представляет собой переменную порядкового типа, которая должна быть определена в том же блоке, где находится оператор цикла; вы­ражение1 и выражение2 являются, соответственно, начальным и конечным значениями параметра цикла и должны иметь тип, совместимый с типом параметра цикла.

Оператор цикла обеспечивает выполнение тела цикла, которым является оператор, расположенный после слова do, до полного перебора всех значе­ний параметра цикла от начального до конечного с соответствующим ша­гом. Шаг параметра всегда равен 1 для первого формата цикла и -1 – для второго формата. То есть значение параметра последовательно увеличивает­ся или уменьшается на единицу при каждом повторении цикла.

Цикл может не выполниться ни разу, если для цикла for... to значение начального выражения больше конечного, а для цикла for...downto значение начального выражения меньше конечного.

Примеры. var i, j: integer; ch: char;

begin

for i:=10 to 14 do write(i:4); writeln;

for j:=14 downto 10 do write(j:4); writeln;

for ch:=’a’ to ‘e’ do write(ch:3);

end;

Результат: 10 11 12 13 14

14 13 12 11 10

a b c d e

Оператор цикла с постусловием целесообразно использовать в тех случаях, когда тело цикла необходимо выполнить не менее одного раза и заранее не­известно общее количество повторений цикла. Формат оператора:

<0ператор1>;

...

<0ператор N >;

until <условие>;

Условие – это выражение логического типа. Операторы, заключенные между словами repeat и until, составляют тело цикла и выполняются до тех пор, пока логическое выражение не примет значение true. То есть тело цикла повторяется при значении логического выражения, равном false. Посколь­ку условие проверяется в конце цикла, то операторы тела цикла выполняют­ся, как минимум, один раз.

В теле цикла может находиться произвольное число операторов без опера­торных скобок begin и end. По крайней мере, один из операторов тела цик­ла должен влиять на значение условия, в противном случае произойдет зацикливание.

Примеры.

а) d:=1; s:=0; б) d:=1; s:=0;

repeat repeat

s:=s+d s:=s+d;

until (d >100); d:= d +1;

//бесконечный цикл until (d >100);

Оператор цикла с предусловием целесообразно использовать в случаях, когда число повторений тела цикла заранее неизвестно и тело цикла может не выполняться. Во многом этот оператор аналогичен оператору repeat... until, но проверка условия выполняется в начале оператора. Формат опера­тора цикла с предусловием:

While <условие> do <0ператор>;

Оператор тела цикла выполняется до тех пор, пока логическое выражение не примет значение false, то есть, в отличие от цикла с постусловием, цикл выполняется при значении логического выражения true.

Пример. i:=30;

While (i<40) do i:=i+1; // если (i>40)? – ни разу

Write(i); // если (i>10)? – бесконеч.

Если перед первым выполнением цикла условие не выполняется (значение логического выражения равно false), то тело цикла вообще не выполняется и происходит переход на оператор, следующий за оператором цикла.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: