Евгений Матвеев – Visual Basic для новичков. Шаг за шагом. Самоучитель / справочник (страница 13)
• диапазоном,
• оператором сравнения.
С непосредственными значениями и выражениями мы уже встречались. Диапазон использует ключевое слово To (До) и определяет множество допустимых значений, от минимального до максимального:
выражение_минимум To выражение_максимум
Примеры диапазонов:
1 To 5
varX To varX +20
Оператор сравнения обязательно содержит ключевое слово Is (Есть), которое олицетворяет текущий результат выражения:
Is оператор_сравнения выражение
Данный блок инструкций Case (Вариант) выполняется, если результатом оператора сравнения будет True (Истина). Примеры операторов сравнения:
Is <> 0
Is> varX
Блок инструкций Case Else (Другой вариант) выполняется, если Visual Basic не находит подходящего значения ни в одной из блоков Case (Вариант).
В следующем примере Select Case оценивает значение переменной Mark, которой до этого был присвоен номер школьной оценки в цифровом виде, и расшифровывает ее. Если значение переменной Mark отличается от допустимого (от одного до пяти), то выдается сообщение об этом.
Select Case Mark
Case 1
MsgBox «Единица»
Case 2
MsgBox «Двойка»
Case 3
MsgBox «Тройка»
Case 4
MsgBox «Четверка»
Case 5
MsgBox «Пятерка»
Case Else
MsgBox «Оценка введена неправильно!»
End Select
5.4. Безусловный переход GoTo
Инструкция GoTo выполняет безусловный переход к метке, расположенной в любой части текущей процедуры. Синтаксис безусловного перехода предельно прост:
GoTo метка
Метка является символьным идентификатором одного из операторов программы, используемым для передачи к нему управления. Она представляет собой комбинацию латинских букв и цифр, но должна состоять начинаться с буквы. В конце метки ставится символ двоеточия «:». Вот несколько образцов меток:
L2:
Good_Place:
ThisIsLabel800:
Несмотря на кажущуюся простоту, использование безусловных переходов крайне затрудняет понимание логики работы программы и увеличивает число ошибок. С другой стороны, алгоритмически доказано, что в любой программе можно обойтись без GoTo, применяя вместо этого инструкции If…Then… Else и Do… Loop.
Поэтому применение инструкции GoTo крайне не рекомендуется. Она поддерживается Visual Basic только для совместимости с предыдущими диалектами языка Basic.
5.5 Цикл For…Next
Цикл For…Next повторяет группу операторов программы нужное количество раз. Синтаксис данного цикла следующий:
For счетчик = начало To конец [Step шаг]
[инструкции]
[Exit For]
[инструкции]
Next [счетчик]
В качестве счетчика используется переменная, значение которой увеличивается или уменьшается при каждом выполнении цикла, проходя значения от начала до конца диапазона с заданным шагом.
По умолчанию при каждой итерации цикла переменная счетчика увеличивается на единицу, но с помощью ключевого слова Step (Шаг) это можно изменить. Переход на новую итерацию цикла осуществляется с помощью инструкции Next.
Досрочное завершение цикла возможно с помощью инструкции Exit For, которая иногда бывает необходима, например, при возникновении ошибки.
В случае применения оператора Exit For будет продолжаться выполнение других операторов программы, расположенных после цикла.
Например, следующий цикл подает звуковой сигнал 5 раз:
For i = 1 To 5
Beep
Next i
Инструкция For определяет переменную i в качестве счетчика цикла, а также ее начальное и конечное значение. Next каждый раз увеличивает переменную i на единицу.
Кстати, указание имени счетчика после Next не обязательно и обычно используется для облегчения понимания кода программы. Инструкция Beep единственная в теле цикла. Она производит короткий гудок.
Циклы могут быть многократно вложенными. Приведем пример такого цикла, где внутри одного цикла с переменной i вложен другой цикл с переменной j:
For i = 100 To 0 Step -10
For j = 1 To 20
varY = varY * (i / j)
Next j
If i <20 Then Exit For
Next i
5.6. Цикл For Each…Next
Немного похожий своим написанием на предыдущий, цикл For Each…Next повторяет набор операторов для каждого элемента массива или всех объектов одного семейства. Вот его синтаксис:
For Each элемент In группа
[инструкции]