- •Понятие процедур, функций, операторов, переменных
- •Переменные
- •Принципы и правила выбора имен для переменных
- •Типы переменных (данных)
- •Числовой тип
- •Строковый тип (текстовая строка)
- •Тип Date (дата)
- •Логический тип
- •Произвольный тип
- •Объектный тип
- •Создание переменных
- •Объявление переменной (variable declaration)
- •Требование явного объявления переменных. Область действия переменных. Константы. Правила написания констант. Операции и знаки операций Требование явного объявления переменных
- •Присваивание переменной (assigning the variable)
- •Область действия или видимости (scope - скауп) переменных
- •Использование переменных с одним и тем же именем в различных уровнях области действия
- •Правила того, как долго переменные удерживают свое значение
- •Константы
- •Создание именованных констант
- •Область действия констант
- •Написание констант
- •Операции и знаки операций
- •Получение приоритета:
- •Преобразование типов данных. Процедуры и функции. Типы операторов. Состав проекта Назначение типов данных
- •Преобразование типов данных
- •Преобразование числовых типов данных
- •Строковые переменные
- •Строки изменяемой и фиксированной длины
- •Преобразование числовых данных в строковые
- •Форматирование данных
- •Процедуры и функции
- •Аргументы
- •Примеры процедур
- •Функции
- •Обзор типов операторов
- •Операторы объявления
- •Операторы присваивания (инициализации)
- •Выполняемые операторы
- •Параметры компилятора
- •Состав проекта
- •Массивы. Классы объектов. Характеристики объектов. Объектная модель. Окно просмотра объекта. Комментарии. Управление потоком Массивы
- •Статические массивы
- •Динамические массивы
- •Пример работы с массивом
- •Классы объектов
- •Наследование
- •Полиморфизм
- •Инкапсуляция
- •Семейства объектов
- •Объектная модель
- •Использование Окна просмотра объектов
- •Замечания о комментариях
- •Управление потоком
- •Управление потоком (продолжение). Условные переходы. Циклы. Оператор With. Немедленный выход с помощью оператора Exit For Оператор Go to Примеры работы с двоичной логикой
- •Операторы условного перехода:
- •Оператор условного перехода If…Then
- •Пример использования условного перехода If…Then
- •Оператор условного перехода If…ElseIf
- •Оператор Select Case
- •Операторы циклов:
- •Повторение под управлением цикла For…Next
- •Пример вложенных циклов For…Next
- •Важные замечания по поводу циклов For…Next
- •Использование оператора цикла For Each… Next
- •Циклы Do…Loop
- •Типы оператора цикла Do…Loop
- •Пример оператора Do While (условие) Loop
- •Использование оператора Do …Until Loop (условие)
- •Использование оператора With
- •Использование оператора Is
- •Немедленный выход с помощью оператора Exit For
- •Управление потоком с помощью оператора Go To
- •«Ввод-вывод данных. Системные функции InputBox и MsgBox» Функции InputBox и MsgBox
Операторы условного перехода:
If…Then, If…ElseIf, Select Case
Оператор условного перехода If…Then
Ключевое слово Then располагается в одной строке с If и выражением условие. Обязательно печатайте End If, иначе VB не поймет, какой оператор должен быть последним в блоке.
Если нужно, чтобы на основании одного условия программа выбирала между двумя альтернативными блоками кода, тогда используйте оператор If…Then…Else (ещё):
If условие Then
(операторы, выполняющиеся, когда условие принимает значение True)
Else
(операторы, выполняющиеся, когда условие принимает значение False)
End If
Пример использования условного перехода If…Then
Private Sub Command1_ Click ()
Image1.Visible = False 'скрыть рисунок J0150861..wmf (свечи),
'который выбирается по пути:C:\Program Files\MS Office\Clipart\ 'PUB60COR\J0150861.wmf
Label1.Caption = Int(Rnd * 10) 'Показать только целую часть числа
Label2.Caption = Int(Rnd * 10)
Label3.Caption = Int(Rnd * 10)
If (Label1.Caption = 7) Or (Label2.Caption = 7) Or (Label3.Caption = 7) Then
Image1.Visible = True
'Если любое число равно 7, то показать картинку и дать сигнал
Beep
End If
End Sub
Оператор условного перехода If…ElseIf
Если нужно проверить, кроме основного, ещё и дополнительные условия, используется ключевое слово ElseIf.
Например, необходимо выполнять определенные операторы только в том случае, когда первое условие не принимает значение True. При этом слово ElseIf в структуре может повторяться любое число раз. Ключевое слово Else необязательно, но если оно присутствует, то должно быть в структуре последним.
Пример:
If objFilm.ExpDate < Date Then
MsgBox "Эта пленка никуда не годится"
ElseIf objFilm.Type = "Слайдовая" Then
Слайдовая = Слайдовая + 1
ElseIf objFilm.Color Then
ЦветнаяНегативная = ЦветнаяНегативная + 1
Else
ЧернобелаяНегативная = ЧернобелаяНегативная + 1
End If
Первый оператор проверяет срок годности пленки, и если он превышен, то выдается сообщение.
Если пленка годная, т. е. первое условие False, то выполняется второй оператор, который проверяет свойство – тип пленки, слайдовая или нет.
Если слайдовая (True), то выполняется следующий оператор: в количество пленок такого типа добавляется единица.
Если же условие не выполняется (False), то выполняется следующая операция – проверка цвета пленки (цветная или нет).
Если цветная (True), то в счетчик цветных негативных добавляется единица.
Если False, то приходится переходить к следующему выполнению Else: прибавлять в счетчик черно-белых пленок единицу, после чего операция выбора заканчивается.
Оператор Select Case
Оператор If…ElseIf хорошо подходит для принятия решений на основе последовательной проверки уменьшающегося количества значений по различным условиям. Если же приходится проверять одно и то же значение в сравнении с различными условиями, то наиболее эффективным, простым в записи и удобочитаемым является оператор Select Case (Case – ящик). Его синтаксис:
Select Case значение
Case критерий1
(операторы, выполняемые, когда значение удовлетворяет критерию 1)
Case критерий2
(операторы, выполняемые, когда значение удовлетворяет критерию 2)
' дополнительные операторы Case
Case Else
(операторы, выполняемые, когда значение не удовлетворяет ни одному из приведенных критериев)
End Select
Если значение свойства не будет удовлетворять ни одному из критериев в операторах Case, то управление перейдет к оператору Case Else, который всегда находится в самом конце структуры Select Case.
Пример оператора условного перехода Select Case:
Select Case objFilm.Type
Case "Слайдовая"
Слайдовая = Слайдовая +1
Case "Цветная негативная"
ЦветнаяНегативная = ЦветнаяНегативная + 1
Case "ЧБ негативная"
ЧБНегативная = ЧБНегативная + 1
Case Else
MsgBox "Неизвестный тип пленки"
End Select
Числовой пример условного перехода с оператором Select Case
-
Составляется таблица:
Объем продаж, тыс. руб. |
Комиссионные, % |
|
8 |
|
10 |
|
14 |
-
Задачу начисления премии решается просто с помощью оператора Select Case:
Option Explicit
Function Премия(Продажа As Single) As Single
Select Case Продажа
Case 0 To 9999
Премия = 0.08 * Продажа
Case 10000 To 39999
Премия = 0.1 * Продажа
Case Is > 40000
Премия = 0.14 * Продажа
End Select
End Function
Sub Main()
Dim Сумма As Single
Сумма = Премия(30000) 'присвоение путем вызова возвращенного значения процедуры Function
MsgBox (CStr(Сумма))
End Sub