End Sub. Результат выполнения программного кода цикла с предусловием с использованием универсального оператора цикла DO LOOP представлен на рисунке 11.5
Результат выполнения программного кода цикла с предусловием с использованием универсального оператора цикла DO … LOOP представлен на рисунке 11.5. Фрагмент программного кода данного примера отображается на форме внутри элемента управления типа Label (метка).
Рис. 11.5. Форма для примера 3 (Цикл-Пока)
Для реализации так называемого цикла со счётчиком (с параметром) используется оператор FOR … NEXT (см. ). Блок-схема соответствующей алгоритмической структуры показана на рисунке 11.6. По сути, это частный случай цикла с предусловием. При этом действие, изменяющее значение счётчика с заданным шагом, вынесено из тела цикла непосредственно в заголовок (символ подготовки).
Рис. 11.6. Цикл с параметром
Фрагмент программного кода для примера 4 на языке VBA
Dim strY As String * 15
Dim strX As String * 7
Dim I As Integer
Rad = Atn(1) * 4/180 'коэффициент для перевода градусной меры угла в радианы
I = 0
For x = -180 To 180 Step 10
I = I + 1
strI = I
strX = x
ModX = Abs(x)
If ModX>89 And ModX<91 Or ModX>269 _
And ModX<271 Then
strY = "-Нет решения"
Else
Y = b ^ sin(a ^ 2) / cos(x * Rad) - d
strY = Y
End If
lbxТабуляция.AddItem strI + "| " + _
strX + "| " + strY
Next x
Результаты выполнения программного кода цикла с параметром с использованием оператора цикла FOR … NEXT представлены на рисунке 11.7.
Рис. 11.7. Форма (Пример 4) с результатом работы цикла с параметром
Кроме того *, в VBA имеется очень похожий на цикл со счётчиком оператор For Each … Next, который повторяет тело цикла для каждого элемента массива или коллекции объектов. При работе с коллекциями (наборами однотипных объектов) количество элементов может быть неизвестно, а концепция начального и конечного значений – не иметь смысла. В таких случаях использование цикла For Each … Next является наиболее предпочтительным.
11.5Оператор цикла FOR … NEXT
Оператор цикла FOR … NEXT используется, когда число повторений заранее известно, и определяется оно значениями счётчика (параметра) цикла: начальным, конечным и шагом (приращением). Оператор имеет следующий синтаксис:
FOR переменная_цикла = начало TO конец [STEP приращение]
[блок_операторов]
[EXIT FOR]
NEXT [переменная_цикла [,переменная_цикла]...]
Здесь переменная_цикла – числовая переменная, используемая как счетчик или параметр цикла; начало и конец – выражения, задающие начальное и границу конечного значения переменной цикла; приращение – значение, прибавляемое к переменной цикла при каждом следующем шаге цикла. Если необязательная часть оператора (STEP приращение) не указывается, то приращение принимается равным единице. Количество повторений тела цикла FOR … NEXT определяется целым (без округления!) числом, определяемым формулой (конец – начало) / приращение + 1.
Тело цикла может содержать любую последовательность вложенных алгоритмических структур, имеющих один вход и один выход, в том числе и вложенные циклы. Синтаксис оператора предусматривает также досрочный выход из цикла (EXIT FOR) *.
Несколько вложенных циклов могут закрываться одним ключевым словом NEXT и указанием имён счётчиков всех требующих закрытия циклов в порядке, обратном их открытию.
Рассмотрим работу оператора FOR … NEXT на примере следующего фрагмента программы:
ForI= Старт To Стоп
lsbРезультат.AddItem I
NextI
Щелчок по кнопке позволяет вызвать форму (рис. 5), на которой можно указать начальное (Старт) и конечное (Стоп) значения счётчика и увидеть соответствующий результат выполнения программы.
Программный код примера 5 на алгоритмическом языке VBA
Private Sub cmbStart_Click()
Dim I As Integer
Dim Старт As Integer
Dim Стоп As Integer
Старт = txtIstart.Value
Стоп = txtIstop.Value
For I = Старт To Стоп
lsbРезультат.AddItem I
Next I
lblВывод.Caption = "* Значение счётчика по завершении цикла ="& I
Дата добавления: 2015-09-14; просмотров: 876;