Loop Loop While / Until условие

Private Sub Proc7_DoWileLoop ()

Dim LotteryEntry As Integer

LotteryEntry = 0

Do While LotteryEntry <> 7

LotteryEntry = Int (10*Rnd ())

Beep

Loop

MsgBox "Ваш номер равен"& LotteryEntry & ".Вы выиграли!!! "

End Sub

Однако цикл Do-Loopпозволяет переписать эту процедуру еще несколькими способами.

Private Sub Proc8_DoUntilLoop () Dim LotteryEntry As Integer LotteryEntry = 0 Do Until LotteryEntry = 7 LotteryEntry = Int (10*Rnd ()) Beep Loop MsgBox "Ваш номер равен"& LotteryEntry &". Вы выиграли!!!" End Sub Private Sub Proc9_DoLoopUntil () Dim LotteryEntry As Integer Do LotteryEntry = Int (10*Rnd ()) Beep Loop Until LotteryEntry = 7 MsgBox "Ваш номер равен"& LotteryEntry &". Вы выиграли!!!" End Sub  

 

D программе Ргос9 ключевое слово Do остав. в начале цикла, а условие завершения и ключевое слово Until переместилось в его конец, за ключевое слово Loop. В таком варианте цикл обязат. выполняется хотя бы один раз, поскольку условие завершения не проверя­ется, пока не будут выполнены все операторы из тела цикла. Поэтому можно убрать оператор для инициализации переменной Lottery Entry.

№ 25 Управляющая структура For-Each-Next

Это самый мощный цикл VB.Предназ.для выполнения одной и той же группы действий над каждым объектом семейства или структуры массива. Это особ. выгодно, если точно не известно, ск-ко эл-тов содерж. коллекция. Синтаксис:

For Each элемент In коллекция

блок операторов

Next элемент

Пример: Sub Proc10_ForEachNext ()

Dim CountryArray (5) As String

Dim Country As Variant

CountryArray (1) = "India "

CountryArray (2) = "Peru "

CountryArray (3) = "Greeke "

CountryArray (4) = "Canada "

CountryArray (5) = "Kenya"

For Each Country In CountryArray

MsgBox Country

Next End Sub

В Ргос10 эл-ты массива CountryArray заполняются названием стран, кот. затем по очереди выводятся на экран в структуре For-Each-Next в виде следующего сообщения(MsgBox)

 

For Each Ключевые слова, отмечающие начало структуры For-Each-Next.
Country Переменная, которой присваиваются значения элементов
In Ключевое слово, отделяющее переменную от группы.
Country Array группа, т.е. массив или семейство объ­ектов. Кол-во повторений цикла совпадает с числом эл-тов в группе. Переменной цикла при первом вы­полнении присваивается значение первого элемента груп­пы, затем — всех последующих элементов.
MsgBox Country Действие, которое выполняется над элементом группы.  
Next Ключевое слово, отмеч. конец структуры. Достигнув его, программа возвращается к началу цикла - структуры For Each. Если значение переменной цикла совпадает с последним элементом группы, выполнится последова­тельность операторов, написанная сразу после Next.

№26 Оператор Exit

В некоторых случаях необходимо прервать выполнение цикла до его завершения. Это можно сделать с помощью команды безусловного пере­хода Exit (завершает выполнение цикла и передает управление следующей за циклом конструкции). Синтаксис этого оператора внутри цикла For выглядит так:

Exit For. Внутри цикла Do синтаксис оператора Exit Do.

ForСчетчикЦикла =НачальноеЗначение То

КонечноеЗначение [Step шаг]

Блок операторов_1

[Exit For]

Блок операторов_2

Next [СчетчикЦикла]

Do [{While / Until} условие]

Блок операторов_1

[Exit Do]

Блок операторов_2

Loop [{While/ Until} условие]

Например:

For nCounter=100 To 1 Step -10

nDecades(nCounter) = nCounter * 2

If nDecades(nCounter) > 20 Then Exit For

Next

Оператор Exit служит также для выхода из процедур Sub и Function. Синтаксис операторов в этом случае соответственно Exit Sub и Exit Func­tion. Эти операторы могут находиться в любом месте тела процедуры. Они использ., когда процедура выполнила нужные действия и из нее необходимо выйти.