|
Учебник по 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 хотя бы раз обязательно выполнится.
|
|
|