Читайте также:
|
|
Цикл означает повторяющийся набор действий.Эти циклы используются тогда, когда число повторений известно заранее – количество шагов задано, например, 20, 100, N, или
может быть вычислено как результат какого-либо выражения до исполнения
цикла. Параметром в цикле является счетчик шагов.
Счетчик (это значение специально выделенной переменной) может изменяться на единицу с каждым шагом или получать некоторое заданное приращение, например, 0.15. Цикл тогда исполняется до тех пор, пока значение счетчика не достигнет указанного в заголовке цикла значения. Общий вид оператора:
For Счетчик = Начальное значение To конечное значение [Step Шаг].
Операторы тела цикла (выполняются несколько раз) …
Next Счетчик
Пример 1:
For i=1 To 10
Msgbox(i)
Next i
По умолчанию шаг равен 1.
Пример 2:
For i=1 To 10 Step 2
Msgbox(i)
Next i
Такой цикл повторится 5 раз. Переменная i будет принимать значения от 1 до 10 с шагом 2, то есть 1, 3, 5, 7, 9. Эти числа будут выведены пользователю в диалоговых окнах.
Если не видим смысла дальнейшей работы счетчика(когда напр. I>верх границы)мы исп.Exit For,т.е выход.(между For и MsgBox If x>100 ниже Exit for)
5. Назначение и способы реализации на VBA циклов «с предусловием» и «постусловием.. Циклы с условием используются в тех случаях, когда повторяющиеся действия нужно выполнять только при определенных условиях. Количество итераций не определено и в общем случае может быть равно нулю (в частности, для циклов с предусловием).
VBA предлагает пользователям несколько управляющих структур для организации циклов с условием:
- Четыре вида циклов Do..Loop, которые различаются типом проверяемого условия и временем выполнения этой проверки;
- Непрерываемый цикл While … Wend.
Цикл Do While … Loop - типичный цикл с предусловием. Условие проверяется до того, как выполняется тело цикла. Цикл продолжает свою работу, пока это <условие> выполняется (т.е. имеет значение True). Так как проверка выполняется в начале, то тело цикла может ни разу не выполниться.
Формат цикла Do While … Loop:
Do While <условие>
<блок операторов>
Loop
Оператор Do … Loop While предназначен для организации цикла с постусловием. Условие проверяется после того, как тело цикла, будет выполнено хотя бы один раз. Цикл продолжает свою работу, пока <условие> остается истинным.
Формат цикла Do … Loop While:
Do
<блок операторов>
Loop While <условие>
Циклы Do Until … Loop и Do … Loop Until являются инверсиями ранее рассмотренных циклов с условием. В общем случае они работают аналогично, за исключением того, что тело цикла выполняется при ложном условии (т.е. <условие>=False).
Формат цикла Do Until … Loop:
Do Until <условие>
<блок операторов>
Loop
Формат цикла Do … Loop Until:
Do
<блок операторов>
Loop Until <условие>
Цикл While … Wend также относится к циклам с условием. Данный оператор полностью соответствует структуре Do While … Loop.
Формат цикла While … Wend:
While <условие>
<блок операторов>
Wend
Отличительной особенностью этого оператора является невозможность принудительного завершения (прерывания) тела цикла (оператор Exit Do не работает в цикле While … Wend).
Для досрочного завершения итерации и выхода из цикла применяется оператор Exit. Этот оператор применим в любой циклической структуре, кроме While... Wend. Общий синтаксис использования Exit для прерывания цикла таков:
<начало_цикла>
[<блок операторов 1>]
Exit (For | Do)
[<блок операторов 2>]
[Exit (For | Do)]
...
<конец_цикла>
При выполнении оператора Exit цикл прерывается, и управление передается оператору, следующему за оператором <конец_цикла>. В теле цикла может присутствовать несколько операторов Exit.
Пример. Вычислить сумму чисел от 0 до 100.
Решение 1. С помощью цикла Do While … Loop
Dim x As Double, s As Double
x = 0
s = 0
Do While x <= 100
s = s + x
x = x + 1
Loop
5.. MsgBox ("s=" + Str(s))
Решение 2. С помощью цикла Do … Loop Until
Dim x As Double, s As Double
x = 0
s = 0
Do
s = s + x
x = x + 1
Loop Until x > 100
MsgBox ("s=" + Str(s))
Решение 3. С помощью цикла For … Next
Dim x As Double, s As Double
s = 0
For x = 0 To 100
s = s + x
Next x
MsgBox ("s=" + Str(s))
Решение 4. С помощью цикла While … Wend
Dim x As Double, s As Double
x = 0
s = 0
While x <= 100
s = s + x
x = x + 1
Wend
MsgBox ("s=" + Str(s))
6. Программирование задач, требующих сочетания цикла и ветвления. Примеры.
Программа для нахождения максимального значения массива.
Sub Кнопка()
Dim n As Integer ‘Размер массива
Dim a() As Integer ‘Это наш рабочий массив
Dim i As Integer, MX As Integer, iMX AS Integer
n=cells(1,1)
ReDim a(1 to n)
For i=1 to n
a(i)=Int(10-20*Rnd):cells(i,2)=a(i)
Next i
MX =a(1): iMX=1 ’ iMX - Порядковый номер максимального элемента
For i=2 to n —-------------цикл
If a(i)>MX then —----------ветвление
MX=a(i)
iMX=i
Cells(1,3)=iMX:Cells(1,4)=MX
End if
Next i
End Sub
Дата добавления: 2015-11-13; просмотров: 54 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Властивості інформації, їх вплив на прийняття управлінського рішення. | | | Иллюстрация сочетания цикла и ветвления ..методом дихотомии (или методом касательных). |