- •Понятие процедур, функций, операторов, переменных
- •Переменные
- •Принципы и правила выбора имен для переменных
- •Типы переменных (данных)
- •Числовой тип
- •Строковый тип (текстовая строка)
- •Тип 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
Использование оператора Do …Until Loop (условие)
Можно для предыдущего примера использовать также оператор цикла
Do … Loop Until (условие)
Do
ВводимыеИмена =InputBox("Введите Ваше имя или слово "Готово" для выхода")
If ВводимыеИмена < > "Готово" Then
Print ВводимыеИмена
Loop Until ВводимыеИмена = "Готово"
т.е., в данном примере в смысловом отношении более удобно использовать оператор цикла Do … Loop Until (условие), при этом условие записывается более просто: ВводимыеИмена = "Готово".
Использование оператора With
Если в программе один и тот же объект используется в нескольких идущих один за другим операторах, то использование оператора With (пока) позволяет указать объект только один раз. Это делает код более понятным, а его выполнение более быстрым. Например:
With objПолнаяОбъективность
.Name = "Опрос общественного мнения" ' установка свойства Name
.DisplayName ' вызов имени DisplayName
sngRegion = .Area ' выяснение значения свойства Area
intПодтасовка = .Rotate (60) ' вызов метода Rotate (Поворот)
' и сохранение возвращаемого им значения в переменной
End With
Как видно, конструкция With…End With может включать операторы, в которых читаются и устанавливаются свойства, вызываются методы. Данная конструкция не задает цикл: входящие в нее операторы будут выполнены только один раз.
Конструкции, использующие With, можно вкладывать одна в другую. Это удобно, когда нужно выполнить ряд действий и по отношению к некоторому объекту, и по отношению к одному из содержащихся в нем объектов.
Использование оператора Is
Если необходимо выяснить идентичность двух ссылок на объекты, то это можно сделать с помощью оператора Is (результат будет True или False),например,
Dim objObject1 As Object, objObject2 As Object
….
If objObject1 Is objObject2 Then
MsgBox "Это тот же самый объект!"
Else
MsgBox "Это разные объекты!"
End If
Немедленный выход с помощью оператора Exit For
Обычно этот оператор используется в условном выражении (If…Then и Select ...Case), вложенном в главный цикл For…Next. например, при появлении недопустимого значения:
For p = 1 To varДлинаМассива
If varЦена (p) = "Здесь был Ваня!" Then
MsgBox "Данные испорчены."
Exit For
End If
varЦена (p) = varЦена (p) * sngCOLA
Next p
Управление потоком с помощью оператора Go To
Оператор Go To в совокупности со специальным оператором метки в месте назначения позволяет перемещаться от одной процедуры к другой, т. е. - это использование безусловного перехода. Метка – это оператор, отмечающий некоторое место в программе. Чтобы задать метку, напечатайте в нужном месте ее имя, а после него двоеточие.
В следующем примере оператор Go To направляет поток из главной части процедуры к метке, в частности, с именем "Метка", если встречается необычное значение:
Function ПримерGoTo (Номер As Integer)
Dim intR As Integer
IntR="Ошибка"
Select Case Номер
Case 2412
Go To Метка
….
End Select
(операторы, выполняющие какие-то действия)
Метка:
ПримерGoTo = IntR
End Function
С оператором Go To код читается гораздо труднее, поэтому по возможности следует использовать структуры, позволяющие выполняться программе последовательно. Но иногда этот оператор является наиболее естественным способом для того, чтобы заставить программу делать то, что нужно.