Управляющие структуры в Visual Basic

Содержание

Слайд 2

Условные операторы. В первом случает, оператор может быть только один. Во

Условные операторы.

В первом случает, оператор может быть только один. Во втором

- сколько угодно.

Оператор If ... End If

Синтаксис:

If Логическое_выражение Then Оператор
или
If Логическое_выражение Then
     Группа_операторов
End If

Слайд 3

Условные операторы. Скобки здесь не обязательны, но они повышают читабельность кода.

Условные операторы.

Скобки здесь не обязательны, но они повышают читабельность кода.

Оператор If

... End If

Пример:

If (a = b) And (c <> d) Then
    b = d
    a = 20
End If

Слайд 4

Условные операторы. операторы после Else выполняются только в том случае, если

Условные операторы.

операторы после Else выполняются только в том случае, если ни

одно из условий не выполнено

Оператор If...Else...ElseIf...End If

Синтаксис:

If Логическое_выражение1 Then
Группа_операторов
ElseIf Логическое_выражение2 Then
     Группа_операторов
...
Else
Группа_операторов
End If

Слайд 5

Условные операторы. Пример: If (a = b) Then b = d

Условные операторы.

Пример:

If (a = b) Then
    b = d
ElseIF (d > c)

Then
    a = 20
Else
a=b
End If

Оператор If...Else...ElseIf...End If

Слайд 6

Оператор множественного выбора. Анализируемое выражение должно возвращать значение типа, совместимого с

Оператор множественного выбора.

Анализируемое выражение должно возвращать значение типа, совместимого с типом

значений в строка Case

Оператор Select Case

Синтаксис:

Select Case Анализируемое_выражение
Case Значение_1
Группа_операторов
Case Значение_2
     Группа_операторов
...
Case Значение_N
Группа_операторов
Case Else
Группа_операторов
End Select

Слайд 7

Оператор множественного выбора. Пример: Оператор Select Case Select Case iTest Case

Оператор множественного выбора.

Пример:

Оператор Select Case

Select Case iTest
Case 1
    strResult = "iTest =

1"
Case 2, 3, 4
    strResult = "iTest = 2, 3 или 4"
Case 5 To 9
    strResult = "iTest в диапазоне от 5 до 9"
Case iTest < 0
    strResult = "iTest меньше 0"
Case Is > 9
    strResult = "iTest больше 9"
Case Else
    strResult = "iTest равно 0"
End Select
Слайд 8

Операторы цикла. Роль счётчика цикла может играть только ранее объявленная переменная

Операторы цикла.

Роль счётчика цикла может играть только ранее объявленная переменная целочисленного

типа.
По умолчанию значение шага равно 1.
После слова Next счётчик можно опустить.

Оператор For ... Next

Синтаксис:

For Счётчик_цикла = Старт To Стоп Step Шаг
     Группа_операторов
Next [Счётчик_цикла]

Слайд 9

Операторы цикла. Оператор For ... Next Пример: Dim c As Integer

Операторы цикла.

Оператор For ... Next

Пример:

Dim c As Integer
Dim iArray(10) As Integer
For

c = 0 To 10
    iArray(c) = 5
Next c
Слайд 10

Операторы цикла. Эта специфическая форма цикла For предназначена для выполнения некоторой

Операторы цикла.

Эта специфическая форма цикла For предназначена для выполнения некоторой операции

с каждым объектом, входящим в состав некоторой коллекции объектов
Такой операцией, например, может быть вызов метода или присваивание значения свойству

Оператор For Each ... Next

Синтаксис:

For Each Имя_Объекта In Имя_Коллекции
     Операции над объектами
Next Имя_Объекта

Слайд 11

Операторы цикла. Оператор For Each ... Next Пример: ‘ В этом

Операторы цикла.

Оператор For Each ... Next

Пример:

‘ В этом примере показано, как

изменить свойство
‘ BackColor у всех этикеток, лежащих на форме.
Dim x As Object
For Each x In Me.Controls
    If TypeName(x) = "Label" Then
        x.BackColor = 0
    End If
Next x
Слайд 12

Операторы цикла. Отличие заключается в том, что условие выхода проверяется в

Операторы цикла.

Отличие заключается в том, что условие выхода проверяется в первом

случае перед очередным проходом, а во втором - после выхода.

Операторы
Do While ... Loop Do ... Loop While

Синтаксис:

Do While Условие_выхода
     Группа_операторов
Loop

Do
    Группа_операторов
Loop While Условие_выхода

Слайд 13

Операторы цикла. Операторы Do While...Loop Do...Loop While Пример: Dim n As

Операторы цикла.

Операторы
Do While...Loop Do...Loop While

Пример:

Dim n As Integer
n=100
Do While n

>= 0
    n = n-1
    Debug.Print  n 
Loop
Слайд 14

Операторы цикла. По своей логике цикл Until подобен циклу While с

Операторы цикла.

По своей логике цикл Until подобен циклу While с той

лишь разницей, что проходы цикла выполняются до тех пор, пока условие выхода не выполняется.

Операторы
Do Until ... Loop Do ... Loop Until

Синтаксис:

Do Until Условие_выхода
     Группа_операторов
Loop

Do
    Группа_операторов
Loop Until Условие_выхода

Слайд 15

Операторы цикла. Операторы Do Until ... Loop Do ... Loop Until

Операторы цикла.

Операторы
Do Until ... Loop Do ... Loop Until

Пример:

Dim n

As Integer
n=100
Do
n = n-1
Debug.Print  n 
Loop Until n < 11
Слайд 16

Операторы выхода из цикла. Операторы Exit For Exit Do Пример: Dim

Операторы выхода из цикла.

Операторы Exit For Exit Do

Пример:

Dim n As Integer
n=10
Do


n = n-1
Debug.Print  n
If n=5 Then Exit Do 
Loop While n > 1

С помощью операторов Exit... можно осуществить досрочный выход из цикла вне зависимости от значения, которое имеет в данный момент условие выхода.

Слайд 17

Обработка ошибок в Visual Basic

Обработка ошибок в Visual Basic

Слайд 18

Обработка ошибок. Оператор On Error GoTo Оператор On Error GoTo определяет

Обработка ошибок.

Оператор On Error GoTo

Оператор On Error GoTo определяет подпрограмму обработки

ошибок.

Синтаксис:

On Error GoTo Метка

Если в процессе выполнения программы произошла ошибка, то оператор On Error GoTo передаст управление на определенную метку.
При этом стандартный метод обработки ошибок выполнения блокируется.
Подпрограмма обработки ошибок должна завершаться оператором Resume.

Слайд 19

Обработка ошибок. Оператор On Error GoTo Пример: 'Программа с ошибкой деления

Обработка ошибок.

Оператор On Error GoTo

Пример:

'Программа с ошибкой деления
On Error GoTo

ErrHandler
PRINT "Вывод проведенных вычислений"
PRINT 1000/0 'строка-провокатор
GoTo Met 'здесь основная программа кончается
'начало собственной программы обработки ошибок
ErrHandler:
PRINT "Найдена ошибка"
RESUME
Met: End

При обнаружении ошибки выполнение основной программы не прекращается и программа продолжает выполняться, в отличие от стандартного метода обработки ошибок.

Слайд 20

Обработка ошибок. Более эффективно обработать ошибку можно, если знать причину ее

Обработка ошибок.

Более эффективно обработать ошибку можно, если знать причину ее появления.

Необходимая

информация об ошибке хранится в следующих переменных:

ERDEV

Последний код ошибки устройства

ERDEV$

Соответствующее имя устройства

ERR

Код ошибки выполнения

Значение этих переменных можно анализировать в собственной программе обработки ошибок

Слайд 21

Обработка ошибок. Оператор Resume Оператор Resume можно применять в следующих вариантах:

Обработка ошибок.

Оператор Resume

Оператор Resume можно применять в следующих вариантах:

Resume

вызывает повторное выполнение

ошибочного фрагмента

Resume Метка

передает управление на метку

Resume Next

продолжает программу со строки, следующей за предложением, в котором обнаружена ошибка

Слайд 22

Процедуры и функции в Visual Basic

Процедуры и функции в Visual Basic

Слайд 23

Процедуры и функции. В Visual Basic большинство программ создается из блоков

Процедуры и функции.

В Visual Basic большинство программ создается из блоков –


процедур и функций.

Весь программный код находится как бы внутри этих процедур.
Если возникает необходимость в решении какой-либо задачи в любом месте программы, то вызывается процедура

В Visual Basic нельзя ввести код между процедурами.

Код всегда должен находиться внутри процедуры.

Слайд 24

Процедуры. Процедура - это блок кода, который будет выполняться всякий раз

Процедуры.

Процедура - это блок кода, который будет выполняться всякий раз при

её вызове.

Каждая процедура начинается зарезервированным словом Sub и заканчивается словом End.

Синтаксис:

[Private | Public | Friend] [Static] Sub name [(arglist)]
     [здесь некий код]
[Exit Sub]
     [здесь тоже может быть код]
End Sub

Слайд 25

Процедуры. Пример: Private Sub ShowMessage(message As String) MsgBox message End Sub

Процедуры.

Пример:

Private Sub ShowMessage(message As String)
     MsgBox message
End Sub

Слайд 26

Функции. Для вызова процедуры достаточно написать её имя: ShowMessage(”Ура!”) А можно

Функции.

Для вызова процедуры достаточно написать её имя:

ShowMessage(”Ура!”)

А можно и так:

Call ShowMessage(”Ура!”)

Скобки,

окружаемые параметр обязательны, если перед именем процедуры стоит оператор Call.

Если Call отсутствует, то скобки ставить не нужно.

Если количество параметров, передаваемых при вызове процедуры, не совпадёт с количеством параметров в объявлении процедуры –
Visual Basic сгенерирует ошибку.

Слайд 27

Функции. Функция - это блок кода, который будет возвращать значение. Этим,

Функции.

Функция - это блок кода, который будет возвращать значение.

Этим, и только

этим функции отличаются от процедур.

Синтаксис:

[Private | Public | Friend] [Static] _
Function name [(arglist)] [As type]
     [здесь некий код]
[имяфункции = выражение]
[Exit Function]
     [здесь тоже может быть код]
[имяфункции = выражение]
End Function

Слайд 28

Функции. Пример: Public Function Square(number As Long) As Long Square = number * number End Function

Функции.

Пример:

Public Function Square(number As Long) As Long
    Square = number * number
End

Function
Слайд 29

Функции. Вызвать функцию можно так: b = Square (5) Можно использовать

Функции.

Вызвать функцию можно так:

b = Square (5)

Можно использовать нашу процедуру для

вывода сообщения на экран:

ShowMessage Square (5)

А можно и так:

Square 5

В последнем случае возвращённое функций значение уходит в никуда, но сама функция благополучно выполнится.

Слайд 30

Процедуры и функции. arglist имеет следующий вид: [Optional] _ [ByVal |

Процедуры и функции.

arglist имеет следующий вид:

[Optional] _
[ByVal | ByRef] _
[ParamArray]

_
varname[( )] [As type] _
[= defaultvalue]
Слайд 31

Процедуры и функции. Optional Это слово должно предшествовать имени того аргумента,

Процедуры и функции.

Optional
Это слово должно предшествовать имени того аргумента, который

является необязательным.
После необязательного аргумента могут следовать только необязательные же аргументы.
Нельзя использовать необязательные аргументы совместно с массивом аргументов (ParamArray).
Слайд 32

Процедуры и функции. ByVal Аргумент будет передаваться по значению Соответствующий аргумент

Процедуры и функции.

ByVal
Аргумент будет передаваться
по значению
Соответствующий аргумент может

быть выражением.
ByRef
Аргумент будет передаваться
по ссылке
Соответствующий аргумент может быть только переменной.
Этот режим передачи аргументов принят по умолчанию
Слайд 33

Процедуры и функции. ParamArray Массив аргументов. Так может быть объявлен только

Процедуры и функции.

ParamArray
Массив аргументов.
Так может быть объявлен только последний аргумент

в списке,
при этом он будет представлять собой переменную типа Variant,
содержащую в себе массив.
Этим способом можно передавать в процедуру или функцию значительные объемы данных.
При использовании массива аргументов нельзя применять свойства
Optional, ByVal и ByRef.
Слайд 34

Процедуры и функции. varname это имя переменной, массива, элемента управления или

Процедуры и функции.

varname
это имя переменной, массива, элемента управления или формы


в последних двух случаях тип принимает значения Control и Form.
В случае массива после имени массива ставится пара скобок (), внутри которых не указываются границы значений индексов,
что позволяет использовать одну процедуру (функцию) для разного числа элементов массива в каждом конкретном случае.