скачать книгу бесплатно
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 группа
[инструкции]
[Exit For]
[инструкции]
Next [элемент]
Например, чтобы поочередно вывести на экран значения всех элементов массива MyArray, нужно написать следующий цикл:
For Each ArrItem In MyArray
Print ArrItem
Next
5.7. Цикл Do… Loop
Do… Loop – цикл, который выполняется до тех пор, пока не будет выполнено некоторое условие, указанное вначале или в конце цикла.
Он имеет следующий синтаксис (вариант проверки условия в начале):
Do [{While | Until} условие]
[инструкции]
[Exit Do]
[инструкции]
Loop
Допустима также другая форма написания этого цикла (вариант проверки условия в конце) :
Do
[инструкции]
[Exit Do]
[инструкции]
Loop [{While | Until} условие]
Итерации цикла (выполнение этого участка кода программы) будут продолжаются снова и снова, до тех пор, пока не будет выполнено одно из двух условий:
• условие, записанное после ключевого слова While (Пока [истина]), принимает значение False (Ложь),
• условие, записанное после ключевого слова Until (Пока не [истина]), принимает значение True (Истина).
Проверку условий можно делать как в начале, перед выполнением цикла, так и в конце, когда цикл был пройден хотя бы один раз.
Без указания условий цикл Do… Loop будет работать бесконечно. Поэтому для досрочного выхода из цикла можно применять инструкцию Exit Do.
В следующем примере иллюстрируется необходимость проверки условия в начале цикла, чтобы не возникла ошибка деления на ноль:
intDig1 = 5
Do While intDig1> 0
print 100 / intDig1
intDig1 = intDig1 – 1
Loop
5.8. Инструкция With
Инструкция With не является условием или циклом, а упрощает выполнение нескольких последовательных операций над одним объектом, помогая избежать повторного задания его имени.
В следующем примере форма Form1 позиционируется на экране и устанавливается ее размеры.
With Form1
.Left = 3500
.Top = 2500
.Width = 4000
.Height = 3000
End With
Глава 6. Процедуры и функции
В этой главе вы научитесь:
• разбираться в разновидностях подпрограмм,
• создавать собственные подпрограммы,
• использовать встроенные процедуры и функции.
6.1. Разновидности процедур
В предыдущей главе мы познакомились с возможностью изменения последовательности операторов программы с помощью условных инструкций и циклов. Сюда же можно отнести и инструкции вызова процедур.
Процедурой (Procedure) в языке Visual Basic называется именованная часть программы, которая вызывается, выполняет определенные действия и возвращает управление в строку, следующую за точку вызова.
Различают следующие основные разновидности процедур:
• обработки событий,
• общего назначения,
• встроенные.
Процедуры обработки событий (Event Procedures) вызываются самим Visual Basic, когда происходят определенные события, связанные с элементами управления. В главе 2 мы уже составляли текст таких процедур, занимающихся обработкой события Click (Щелчок) кнопок cmdHello и cmdExit.
Процедуры общего назначения (General Procedures) не привязаны ни к каким событиям или объектам. Необходимость в их написании возникает, когда в разных частях программы приходится использовать одну и ту же последовательность операторов. Тогда пишется одна процедура общего назначения, а в нужных точках программы вставляются инструкции вызова этой процедуры. Использование процедур общего назначения улучшает читаемость текста программы, а также уменьшает число ошибок.
Встроенные процедуры (Built-In Procedures) поставляются уже готовыми в комплекте Visual Basic. Они выполняют все наиболее часто требуемые операции, но их внутренняя структура скрыта от программиста. Встроенные процедуры вызываются из основной программы так же, как и процедуры общего назначения. Методы и свойства стандартных объектов, также являются встроенными процедурами, однако они могут использоваться только применительно к этим объектам.