Другой оператор перехода позволяет перейти к выполнению выделенной группы операторов (так называемая внутренняя процедура). Синтаксис его использования следующий:
GoSub { метка \ номер строки }
{метка : \ номер строки } Return
этот оператор вызывает переход к выполнению группы операторов, начало коюрои указано меткой или номером строки. Последний оператор группы является оператор Return (Return и GoSub — ключевые слова).
Пример:
Dim Num ' Объявление переменной.
Num = Input Во\(“ Введите число.”)
GoSub Routine ' Переход к группе операторов (к
' внутренней процедуре).
GoTo Nextparl ' Обход группы операторов (внутренней
'процедуры). Routine: ' Начало группы операторов (внутренней
'процедуры). Num = Num / 2
Return ' Конец группы операторов (выход из внутренней ' процедуры). Nextparl: ' Продолжение программы. Msgbox “Половина введенного числа равна “ & Num End Sub
3.5.2. Оператор присваивания
Оператор присваивания (assignment statement) имеет следующий вид:
[Let] {переменная | элемент массива} = выражение
Переменной или элементу массива в левой части оператора присваивается значение вычисленного выражения в левой части.
Примеры:
С = A(f,J+l) * (Cos(B+3.5) + 2 * К л 3) + (Р - 3.25)
StartTime = Now
1=1+1
Massiv_J(3,4) =В л 2 - 4*А*С + D
Student_1.Birthdate =DateSerial(1975,6,11) - используется встроенная функция DateSerial для преобразования трех последовательных чисел (год, месяц, число) в дату.
Р = Х+ 2 >=KAnd A + В > С Or А*Х + B*Y=D And (H<=Y And Y<=Q)
Sesia( Current). Name Exam( 2)= “Физика “
При использовании оператора присваивания следует соблюдать следующие правила:
Если в левой части оператора используется переменная или элемент массива символьного типа (String), то выражение в правой части должно быть тоже символьное; Если в левой и правой частях оператора используются арифметические данные (Integer. Long, Single, Double, Currency^ но разных типов, то тип правой части” преобразуется к типу левой части. Результатом присвоения значения вещественной константы 2.5 переменной целого типа (I = 2.5) будет 2 (т.е. в ячейке памяти отведенной для переменной I будет храниться значение 2).
Переменной или элементу массива типа Variant в левой части может соответствовать любой тип выражения в правой части (в ячейке памяти для хранения данных типа Variant сохраняется не только значение, но и его тип). Однако такого присвоения желательно избегать.
Опция Let в операторе используется для присвоения значения одного данного пользовательского типа другому, при условии что типы элементов обоих пользовательских данных совпадают.
3.5.3. Условный оператор
Как правило, алгоритмы обработки информации и реализующие их программы содержат проверки каких-либо условии, от которых зависит последующее действие. Для этого предназначен условный оператор, который имеет вид
If логическое выражение Then then-последователпость [Else else -последовательность} или
If логическое выражение Then
[блок операторов — 1} [Elself логическое выражение Then
[блок операторов — 2] ] [Else
[блок операторов — п] ] End If где If, Then, Elself, Else, End If ключевые слова.
Во второй синтаксической конструкции If и End If являются как бы открывающей и закрывающей скобкой группы операторов, образующих структурный логический оператор.
Then-последователность и else-последовательность имеют вид
{операторы \ [GoTo] номер строки \ GoTo метка } операторы — последовательность расположенных на одной строке операторов, разделенных двоеточием.
Пример:
If А > 10 Then A = А + I : В = В + А : С = С + В: GoTo
Vsiavka
If Name = “Иван” Then GoTo 555
If Name = “Иван “ Then 555 (эквивалентно предыдущему оператору)
блок операторов 1, блок операторов 2, ... блок операторов п _ последовательность выполняемых операторов.
Первая синтаксическая конструкция условного оператора обеспечивает альтернативное выполнение then-последователности или else-последовательности в зависимости от значения логического выражения (принимает значение True или False ) If True Then 'эти операторы Else 'эти операторы
выполняются не выполняются 'следующий оператор . If False Then 'эти операторы Else 'эти операторы
не выполняются выполняются ' следующий оператор
Вторая синтаксическая конструкция условного оператора обеспечивает альтернативное выполнение блоков операторов (блок операторов — 1, блок операторов — 2,... блок операторов — п) в зависимости от значений логических выражений (принимает значение True или False ) If True Then
'эти операторы блока выполняются Else эти операторы блока не выполняются End If 'следующий оператор If False Then
'эти операторы блока не выполняются Else 'эти операторы блока
выполняются End If • 'следующий оператор Ключевое слово Elself позволяет объединить функции Else и следующего вложенного If. Примеры показывают эквивалентность, с точки зрения реализуемого алгоритма, двух фрагментов программ
Во втором примере отсутствует повторное вложение If — End If.
Пример программы.
Программа должна определять количество десятичных цифр в вводимом числе от 0 до 1000. Запуск программы осуществляется щелчком мыши по форме (операторы программы помещаются в процедуру обработки события Foim_Click):
Private Sub Form_Click()
Dim X, Y 'объявление переменных . X = InputBox(“Введите число больше 0 и меньше 1000.”)
If X < 10 Then
Y = 1 • 1 цифра. Elself X < 100 Thpn
Y = 2 ' 2 цифры. Else
Y = 3 ' 3 цифры. End If
If Y > 1 Then Unit = “ цифры.” Else Unit = “ цифру.”
MsgBox “Введенное число имеет “ & Y & Unit End Sub
Рис 33
После запуска программы появляется пустая форма Щелчок мыши на форме вызывает появление окна ввода, в котором можно набрать вводимое число и ввести его щелчком мыши по кнопке или клавишей “Enter” (рис. 3 3). После ввода появляется окно с результатом (рис. 3 4)
3.5.4. Управляющая структура Select Case
Структура Select Case применяется, когда одна величина участвует в нескольких логических сравнениях и определяет, какой блок операторов будет выполняться Алгоритм такого множественного сравнения можно запрограммировать и с использованием логического структурного оператора, но применение структура Select Case эффективнее
Наиболее часто структура Select Case применяется в тех случаях, когда сравниваемая величина является целым числом (например, для выбора блоков операторов программы в зависимости от выбранной альтернативы диалога) *
Рис 34
Select Case, Case, Case Else, End Select ключевые слова
(Select Case и End Select соответственно оператор начала и конца структуры);
проверяемое выражение — арифметическое или символьное выражение;
список выражении I, список выражении 2...- может иметь одну из следующих форм:
выражение
выражение То выражение
Is знак отношения выражение
Пример:
Select Case Value
Case /, 3
Блок операторов 1
Case 5 То 10
Блок операторов 2
Case 12 Is >= 15
Блок операторов 3
Case Else
Блок операторов 4 End Select
В данном примере проверяемым выражением является значение Value. Если значение Value 1 или 3 (Case /, 3), выполняется Блок операторов I. Если значение Value от 5 до 10 (Case 5 То 10), выполняется Блок операторов 2. Если значение Value равно 12 или больше 15 (Case 12 Is >= 15), выполняется Блок операторов 3. Если значение Value не равно ни одному из указанных значений
^и не принадлежит ни одному из указанных диапазонов, выполняется Блок операторов 4.
Пример программы.
Программа должна определять, является ли вводимый символ большой или малой буквой латинского алфавита или четной или нечетной десятичной цифрой. Проверка символа осуществляется по значению ASClI-кода вводимого символа. Значение ASClI-кода вводимого символа является проверяемым выражением структуры Select Case. В зависимости от значения кода выдается то или иное сообщение (соответствующие блоки Case-операторов. Запуск программы осуществляется щелчком мыши по форме (операторы программы помещаются в процедуру обработки события Form_Click). Для ввода символа и вывода сообщения используются встроенные функции InpupBox и MseBox.
Рис 3 5
В программе используются всгроенные функции Len (определяет длину строки), Cdbl (преобразует тип исходного выражения в тип Double), Is Numeric (проверяет, является ли символ числом), Asc (преобразует символ и ASCll-код), Спг (преобразует ASCII-код в строку).
После запуска программы появляется пустая форма. Щелчок мыши на форме вызывает появление окна ввода, в котором можно набрать вводимый символ и ввести его щелчком мыши по кнопке или клавишей “Enter” (рис. 3.5). После ввода появляется окно, выводящее характеристику введенного символа
Ввод других символов будет вызывать вывод соответствующих сообщений.
Рис 3 б
3.5.5. Циклы
В алгоритмах обработки информации и реализующих их программах широко используются циклы — повторяющиеся одинаковые вычисления.
Для реализации такого рода программ в Visual Basic специальные средства — операторы цикла.
3.5.5.1. Оператор цикла For-Next
Синтаксис оператора следующий:
For параметр цикла = начшьное значение То конечное значение [Step
шаг}
{блок операторов}
[Exit For] [блок операторов^ Next {параметр цик-га {,параметр цик-ш ][, ...]]
где For, To, Exit For, Step, Next ключевые слова. Пара For-Next определяют начало и конец оператора цикла. Операторы между ними (б->ок операторов) повторяются столько раз, сколько определено. задаваемыми начальным значением, конечным значением и