Управляющие конструкции
В Visual Basic, как и во многих языках программирования, существуют конструкции, предназначенные для управления порядком выполнения действий. Некоторые из конструкций, такие как GoSub и Return, оставлены для совместимости с ранними версиями языка BASIC, но реализация в виде отдельных процедур может обеспечить более структурированный код.
Оператор ветвления
Общий синтаксис:
'Запись оператора ветвления в одну строку
If <условие> Then [действие_когда_условие_истинно]
'Такая запись позволит выполнить действия в зависимости от истинности условия
If <условие> Then [действие_когда_условие_истинно] Else [действие_когда_условие_ложно]
'Запись оператора ветвления в несколько строк
If <условие> Then
[действие_когда_условие_истинно]
ElseIf <условие2> Then
[действие_когда_условие2_истинно]
ElseIf <условиеN> Then
[действие_когда_условиеN_истинно]
Else
[действие_когда_условие_ложно]
End If
Оператор выбора
Общий синтаксис:
Select Case <проверяемое_значение> 'Переменная или выражение, которое требуется проверить по одному или нескольким условиям
Case <значение_1> 'Выполняется действие, если проверяемое значение будет соответствовать значению 1
[действие_1]
Case <значение_2>, <значение_3>, <значение_4> 'Проверяет список значений. Если найдено соответствие, то выполняется действие
[действие_2]
Case <значение_5> To <значение_6> 'Проверяет диапазон значений
[действие_3]
Case Is >= <значение_7> 'Проверяет значение на истинность с условием
[действие_4]
Case Else 'Выполняется действие, если ни одно из условий не выполнится
[действие_5]
End Select
Пример: вывод различных сообщений в зависимости от значения переменной
'Введём переменную и дадим ей значение вручную
Dim X As Double
X = InputBox("Введите числовое значение переменной Х")
Select Case X 'Проверим, подходит ли некоторой воображаемой функции наше значение
Case Is < 5, Is >= 20, 12 To 15 'Диапазон подходящих значений
MsgBox "Действительное значение для некоторой функции"
Case Else 'Не подходящие значения
MsgBox "Значение не может быть использовано в некоторой функции"
End Select
Цикл со счётчиком
Общий синтаксис:
For <переменная> = <значение> To <конечное_значение> [Step <шаговое_значение>]
[блок_операторов]
[Exit For] 'Выход из цикла
Next [переменная]
Пример: подсчёт суммы чётных чисел от 1 до 100
For I = 0 To 100 Step 2
Sum = Sum + I
Next
Совместный цикл
Общий синтаксис:
For Each <переменная> In <коллекция>
[блок_операторов]
[Exit For] 'Принудительный выход из цикла
Next [переменная]
Пример: выводит на экран каждый элемент из массива
Dim strItem As Variant
For Each strItem In Array("Яблоко", "Груша", "Слива")
Print strItem
Next
Цикл с условием
Общий синтаксис:
Do While <условие> 'Цикл выполняется, когда условие истинно
[блок_операторов]
[Exit Do] 'Принудительный выход из цикла
Loop
Do Until <условие> 'Цикл выполняется, когда условие ложно
[блок_операторов]
[Exit Do]
Loop
While <условие> 'Цикл выполняется, когда условие истинно
[блок_операторов]
Wend
Пример: Построчное чтение текстового файла
Open "file.txt" For Input As #1
Do While Not EOF(1) 'Возвратит True, если ожидается конец файла
Line Input #1, strBuffer 'Чтение строки в переменную
Debug.Print strBuffer 'Вывод в окно отладки
Loop
Close #1
Цикл с постусловием
Общий синтаксис:
Do
[блок_операторов]
[Exit Do]
Loop While <условие>
Do
[блок операторов]
[Exit Do]
Loop Until <условие>
