VB-циклы в Visual Basic for Application выполняют те же функции, что и в любом другом языке программирования. Цикл — это возможность повторять выполнение какой-либо части кода, пока не выполнится заданное условие.
Если в других языках программирования с цикличностью немного сложно, так как там может быть большая разновидность циклов, то в Visual Basic существует всего два вида подобных минискриптов:
- циклы со счетчиком — подобные циклы выполняются нужное количество раз;
- циклы с условиями — подобные минискрипты выполняются до того времени, пока не будет выполнено какое-либо обозначенное требование.
VB-циклы: циклы со счетчиком
Такие минискрипты в Visual Basic начинаются с оператора «For» и могут быть исполнены в двух форматах:- «For...Next»;
- «For...Each».
VB-цикл «For...Next»
Обычно в таких минискриптах применяется переменная, которая может принять значения только из указанного диапазона. И с каждым таким значением переменной будет выполняться действие, которое мы прописали непосредственно в самом цикле.
Например:
For i = 0 To 9
Result = Result + iArrays(i)
Next i
В таком цикле у нас присутствует переменная «i», которая будет принимать величины от 0 и до 9. С каждой этой величиной будет проводиться операция из тела цикла. Конкретно в нашем случае программа складывает элементы массива «iArrays» внутри переменной «Result».
В таком цикле по умолчанию шаг переменной равен будет «1», то есть переменная будет брать величины 0, 1, 2, 3 и т. д. Но что если нас интересует другой шаг. Допустим, мы хотим, чтобы шаг был равен «0.5». Для этого случая у нас есть ключевой термин «Step», который может определить шаг переменной.
Например:
For s = 0 To 9 Step 0.5
sResult = sResult + s
Next s
В этом случае наша переменная будет брать величины по следующему сценарию: 0, 0.5, 1, 1.5, 2, 2.5 и т. д. до 9.
Если задать ключевому термину «Step» отрицательное значение, тогда получим «обратный отсчет», например:
For s = 9 To 0 Step -1
sArray(s) = s
Next s
В данном случае переменная будет принимать значения по следующему принципу: 9, 8, 7, 6 и т. д. до 0.
VB-цикл «For...Each»
Данный цикл чем-то похож на предыдущий, но он не просто перебирает величины из обозначенной области, а еще выполняет какие-то манипуляции с обозначенными значениями. Допустим, нам надо вывести наименования всего количества страничек в нашей рабочей книжонке:For Each ws In MyWorkbook.Workpages
MsgBox ws.Titles
Next ws
Оператор для остановки цикла «Exit For»
Данный оператор останавливает наш цикл. После его объявления выполнение кода переходит сразу к следующему после него оператору. Для чего он нужен? Допустим, у нас есть некий большой массив данных, который нам необходимо перебрать в поисках нужного значения. Для перебора массива мы создаем и запускаем цикл. Но где-то к середине массива наш элемент найден. В таком случае зачем нам перебирать весь массив до конца, если мы можем в момент обнаружения нужного нам значения массива прервать программку и дать возможность выполняться следующим скриптам?
Например:
For x = 0 To 100000
If sValues(x) = sVal Then
IndexVal = x
Exit For
End If
Next x
Этот VB-цикл должен перебрать 100 000 значений массива и каждое значение должен будет сравнивать с величиной переменной «sVal». Как только будет обнаружено точное совпадение, то наш минискрипт остановится.
VB-циклы: циклы с условием
Циклы с условием в Visual Basic начинаются с оператора «Do» и могут быть исполнены в нескольких форматах:- «Do...While»;
- «Do...Until».
VB-цикл «Do...While»
Данный минискрипт выполняется до того момента, пока может выполняться указанное условие внутри цикла.
Простой пример:
Dim x As Integer = 99
Do While x > 1
Console.WriteLine(x)
x -= 2
Loop
То есть этот наш минискрипт продолжит свою работу, пока величина нашей переменной «x» будет больше «1». При этом в таком цикле сначала проверяется условие и только потом будет выполняться скрипт внутри самого цикла.
VB-цикл «Do...Until»
Опять же, данный цикл немного похож на предыдущий: скрипт внутри самого цикла будет выполняться до того времени, пока указанное условие равно «True», то есть способно выполняться.
Например:
Dim x As Integer = 99
Do Until x< 1
Console.WriteLine(x)
x -= 2
Loop
То есть данная программка будет выполняться, пока значение «x» не станет меньше «1».
Главное отличие минискрипта «Do...While» от «Do...Until» в том, что «while» выполняется, пока обозначенное условие соответствует «true», а «until» выполняется, пока обозначенное условие не станет «true».
Заключение
VB-циклы довольно простые, но при этом могут выполнять различные задачи, если в тело цикла заключить более сложные условия, чем мы приводили в примерах. В любом случае циклы в Visual Basic призваны облегчить вам работу, так что имеет смысл их получше изучить и начать уже применять.
Смотри также: Visual basic: передача параметров, функции, процедуры и другое
Как вы считаете, материал был полезен?