Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на языке Delphi_1.doc
Скачиваний:
43
Добавлен:
28.03.2015
Размер:
710.14 Кб
Скачать
        1. Оператор повтора for

Оператор повтора for используется в том случае, если заранее известно количество повторений цикла:

for counter := initialValue to finalValue do statement

или

for counter := initialValue downto finalValue do statement

где counter — это параметр цикла – переменная любого порядкового типа данных (переменные вещественных типов данных недопустимы); initialValue и finalValue — выражения, определяющие соответственно начальное и конечное значения параметра цикла (они вычисляются только один раз перед началом работы цикла); statement — тело цикла.

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

Для первой формы: если начальное значение параметра цикла больше конечного значения, цикл не выполнится ни разу. После каждого повтора значение параметра цикла увеличивается на единицу.

Например:

for I := 1 to 10 do ShowMessage(IntToStr(i));

После выполнения цикла значение параметра цикла считается неопределенным, поэтому в предыдущем примере нельзя полагаться на то, что значение переменной I равно 10 при выходе из цикла.

Вторая форма записи оператора for обеспечивает перебор значений параметра цикла не по возрастанию, а по убыванию.

Например, в результате выполнения предыдущего примера (to заменить на downto) на экран будут выведены значения параметра цикла в порядке убывания (от 10 до 1).

Если в такой записи оператора for начальное значение параметра цикла меньше конечного значения, цикл не выполнится ни разу.

        1. Оператор повтора repeat

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

repeat

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

...

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

until <условие завершения цикла>;

Тело цикла выполняется до тех пор, пока условие завершения цикла (выражение булевского типа) не станет истинным. Оператор repeat имеет две характерные особенности, о которых нужно всегда помнить:

  • между словами repeat и until может находиться произвольное число операторов без операторных скобок begin и end;

  • так как условие завершения цикла проверяется после выполнения операторов, цикл выполняется, по крайней мере, один раз.

В следующем примере показано, как оператор repeat применяется для суммирования вводимых с клавиатуры чисел. Суммирование прекращается, когда пользователь вводит число 0:

program Console;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

S, X: Integer;

begin

S := 0;

repeat

Readln(X);

S := S + X;

until X = 0;

Writeln('S=', S);

Writeln('Press Enter to exit...');

Readln;

end.

Часто бывает, что условие выполнения цикла нужно проверять перед каждым повторением тела цикла. В этом случае применяется оператор while, который, в отличие от оператора repeat, содержит условие выполнения цикла, а не условие завершения.