End Sub

Loop

Loop

Do

Loop

. . .

Loop

. . .

Циклы с условием

 

Имеется несколько разновидностей циклов :

1. Цикл с предусловием :

Do While <условие> ‘While – “до тех пор (пока)”

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

Loop ‘конец цикла,

где <условие> – логическое выражение (c While -это условиепродолжения ЦИКЛА).

Перед выполнением тела цикла (в том числе и в первый раз) проверяется истинность ус-

ловия. Если оно имеет значение True (истина), то тело цикла выполняется, если False (ложь),

то осуществляется выход из цикла (к оператору, записанному за оператором Loop).

Пример 1:

1. Вычислить F = 10!

Dim I As Integer, F As Integer

F = 1 : I = 2

Do While I < = 10

F = F * I : I = I + 1

MsgBox “F =” & F

2. Цикл с постусловием :

Do ‘начало цикла

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

Loop While <условие> ‘конец цикла

 

Первый раз тело цикла выполняется независимо от условия. Затем, если условие истинно (True), то снова выполняется тело цикла, иначе (Else) – выход из цикла.

Имеются ещё две конструкции цикла Do . . . Loop, отличающиеся тем, что цикл выполняется до тех пор, пока условие ложно(c Until -это условиезавершения ЦИКЛА).:

3. Do Until<условие> ‘Until – “до”, “пока не”

операторы

От цикла 1 отличается тем, что тело цикла выполняется, если условие ложно.

операторы

Loop Until <условие>

От цикла 2 отличается тем, что тело цикла снова выполняется, но если условие ложно.

Из циклов 1-4 можно выйти досрочно с помощью оператора Exit Do.

Пример 2:

A = 0

Do While True ‘True – это условие бесконечного цикла

A = A + 1

IF A > 50 Then Exit Do

При выходе из цикла А = 51.

 

Пример 3:

В непустой неповторяющейся последовательности целых чисел, завершающейся нулем (нуль не является членом последовательности), найти сумму чисел, следующих за максимальным элементом.

Private Sub . . .

Dim X As Integer, S As Integer, Max As Integer

X = InputBox (“Вв. первый элемент последовательности”)

Max = X : S = 0

X = InputBox (“Вв. следующий элемент последовательности”)

Do While X < > 0

IfX > Max Then Max = X : S = 0 Else S = S + X

X= InputBox (“Вв. следующий элемент последовательности, 0 -выход”)

MsgBox “искомая сумма:” & S

Пример 4:

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

Действия :

- Запуск проекта;

- Процедура, связанная с событием Form1_Load очистит Txt1, Txt2, Txt3;

- Появится форма. Нажать “Пуск”. Запустится процедура, в которой имеется команда ввода, и осуществятся вычисления;

- Ввести с клавиатуры число. После ввода появляются значения в Txt1, Txt2, Txt3;

- После завершения ввода последовательноти чисел на Lbl1 появляется сообщение “Ввод завершен”;

- Нажав “Выход”, завершим программу.

Процедуры формы :

Private SubForm1_Load ( )

Txt1.Text = “” : Txt2.Text = “” : Txt3.Text = “”