Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции сем. 1.doc
Скачиваний:
9
Добавлен:
13.11.2019
Размер:
2.03 Mб
Скачать

Операторы цикла

В Delphi имеется три оператора цикла:

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

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

    • оператор цикла с параметром (модификатором).

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

Оператор цикла с предусловием реализует базовую алгоритмическую структуру «Цикл с предусловием».

Синтаксическая структура оператора цикла с предусловием имеет следующий вид»

While <Выражение> Do < оператор>

<Выражение> должно иметь значение логического типа.

После служебного слова Do может быть записан только один оператор. А так как для обеспечения выхода из цикла необходимо менять значение хотя бы одной переменно, входящей в <Выражение>, то в операторе цикла с предусловием после служебного слова do обычно стоит составной оператор.

Пример: I:=1; S:=0; N:=10; { инициализация}

While I<=N Do {условие повторения}

Begin

S:=S+I; {тело цикла}

I:=I+1; {коррекция}

End;

Семантика оператора:

Вычисляется значение <выражения>. Если значение выражения True, то выполняется <оператор>, снова вычисляется значение <выражения> и выполняется <оператор> и т. д. Если при очередном вычислении значения <выражения> будет получено значение False, то произойдет выход из цикла и будет выполнен оператор, записанный за оператором цикла.

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

Оператор цикла с постусловием реализует базовую алгоритмическую структуру «Цикл с постусловием».

Синтаксическая структура оператора цикла с постусловием имеет следующий вид:

Repeat оператор;[ оператор;… оператор; ]Until <Выражение>

<Выражение> должно иметь значение логического типа.

Семантика оператора:

Выполняются оператор/операторы, затем вычисляется значение <Выражения>. Если значение <выражения> True, то выполняется выход из цикла, в противном случае снова выполняются оператор/операторы.

Особенностью данного оператора цикла является то, что он обеспечивает хотя бы однократное выполнение оператора/операторов.

Пример: I:=1; S:=0; N:=10; { инициализация}

Repeat

S:=S+I; {тело цикла}

I:=I+1; {коррекция}

UNTIL I>N; {условие выхода из цикла}

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

Синтаксическая структура оператора цикла с параметром:

For <идентификатор переменной> := <выражение 1> То

<выражение 2> Do <оператор>.

или

For <идентификатор переменной> := <выражение1> Dounto

<выражение 2> Do <оператор>;

Значение переменной, <выражение 1> .<выражение 2> должны быть одного и того же простого порядкового типа.

Т.е. значение переменной, <выражения 1> и <выражения 2> не могут быть типа Real.

Значение переменной, называемой параметром цикла, в <операторе> изменять нельзя.

Семантика оператора:

Оператор цикла For обеспечивает выполнение <оператора>, называемого телом цикла, до тех пор пока не будут автоматически перебраны все значения параметра цикла.

Если параметр цикла имеет тип Integer, Byte или интервальный, то значение параметра цикла последовательно увеличиваются (при ForTo) или уменьшается (при ForDownTo ) на единицу при каждом повторе.

Т.е. оператор цикла For в этом случае не допускает изменения параметра цикла на величину, отличную от единицы.

Пример: S:=0; N:=10;

For I:=1 To N Do

S:=S+I; {тело цикла}