Неопределенные циклы

Неопределенные циклы выполняются в зависимости от условия. Если условие существования цикла в конце цикла - условие выхода из цикла, то такой цикл называется с постусловием. Цикл, может выполняться или нет в зависимости от результата, вычисляемого внутри цикла. Синтаксис записи оператора цикла с постусловием следующий:

Do

<Тело цикла>

Loop Until <Условие>

Условие проверяется после того, как операторы, входящие в цикл, будут выполнены хотя бы один раз. Цикл работает до тех пор, пока условие является ложным. Аналогичным такому циклу является цикл вида

DO

<Тело цикла>

Loop While <Условие>

Условие проверяется после того, как операторы, составляющие тело цикла, будут выполнены хотя бы один раз. Цикл работает до тех пор, пока условие остается истинным.

Например,

Do

Pr = Input Box ("Введите Пароль")

Loop Until Pr = "QWERTY"

В неопределенных циклах проверка происходит в конце цикла, и величина счетчика увеличивается еще на 1. Иногда это вызывает лишнее обновление счетчика. Можно передвинуть проверку условия на начало цикла. Такой цикл называется циклом с предусловием. Синтаксис записи оператора цикла с предусловием следующий:

Do Until <Условие>

<Тело цикла>

Loop

Цикл выполняется до тех пор, пока выражение условия ложно. Иначе выполняется переход на оператор после Loop. Если условие истинно, то цикл выполняться не будет.

Или

Do While <условие>
<Тело цикла>
Loop

Цикл называется <петля>. Условие проверяется, до того как выполняется тело цикла. Цикл продолжает свою работу, пока условие истинно.

Пример 1

Do While x<2
Y = а * ехр(х): X = X + Н Print Y; X
Loop

Пример 2

Const n As Integer =8
Dim S As Integer, j As Integer
S = 0: j = 2
Do Until S > n
S = S + j^2
J = j + 1
Loop
Label2.Caption = S

В таких циклах можно объединять несколько условий.

Например:

Do (While X<=0) and (Textl.Text=" ")
. . . .
Loop

Разновидностью циклов с предусловием является цикл типа Wend. Если условие истинно, то выполняется тело цикла. Если условие ложно, то цикл ни разу не выполнится.

While <Условие>
<Тело цикла>
Wend

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

Например:

If j = 3 Then Exit Do "Досрочный выход из цикла"

Для остановки бесконечного циклического процесса нажать клавиши Break [+ CTRL] или закрыть приложение.