Учебник по Delphi

Циклы.

   В Delphi, как и полагается в приличном языке программирования, можно сделать цикл с известным количеством повторений, цикл с предусловием и цикл с постусловием.

Цикл с известным количеством повторений for

Циклом с известным количеством повторений является for. Вот его пример:

for i := 1 to 20 do s := s + ' ';

   В цикле for указываются начальное и конечное значения переменной (в нашем случае для переменной i они равны 1 и 20 соответственно). Действия, которые нужно выполнять в цикле, указываются после do. После do, кстати, может быть и составной оператор begin-end.

Цикл с предусловием while-do

Данный цикл очень часто используется, например при чтении и записи файлов.

Листинг 5.7
s := 0;
i := 0
whi le i<20 do
begin
s := s + i;
i := i + 1;
end;

   Цикл выполняется, пока выполняется условие (в данном случае i<20). Как видите, в теле цикла i каждый раз увеличивается на единицу, и как только перестанет выполняться условие i<20, цикл прекратится.
К переменной s при каждом выполнении цикла прибавляется пробел. В итоге должно быть двадцать пробелов.

  Можно сделать бесконечный цикл, если записать заголовок цикла следующим образом: while True do. Если запустить программу с таким циклом, то она зависнет. Поэтому подобные циклы обычно пишут с выходом из тела цикла. Для выхода из цикла служит оператор Break. Оператор Continue используется, когда нужно перейти к началу цикла.

Цикл с постусловием repeat-until

   Этот цикл очень похож на while-do, но условие ставится не в начале, а в конце цикла. Цикл выполняется, пока условие ложно (в общем, если сравнивать с whiledo, то все наоборот).

Листинг 5.8
S :=i;
i := 0;
repeat
s := s + 1;
i := i + 1;
unti I i>19;

   В листинге 5.8 приведен такой же цикл, как и тот, который был реализован через while-do (см. листинг 5.7). Обратите внимание, что в этом цикле не нужно писать begin-end. Телом цикла считается то, что написано после repeat до until. Цикл выполняется, пока условие i>19 ложно. Еще одно различие циклов while-do и repeat-until в том, что первый может вообще ни разу не выполниться, если его условие будет ложно, a repeat-until хотя бы раз обязательно выполнится.




 

Рейтинг@Mail.ru          Rambler's Top100

X-ZiBiT