- •Лекция 3.Требование явного объявления переменных. Область действия переменных. Константы. Правила написания констант. Операции и знаки операций Требование явного объявления переменных
- •Присваивание переменной (assigning the variable)
- •Область действия или видимости (scope - скауп) переменных
- •Использование переменных с одним и тем же именем в различных уровнях области действия
- •Правила того, как долго переменные удерживают свое значение
- •Константы
- •Создание именованных констант
- •Область действия констант
- •Написание констант
- •Операции и знаки операций
- •Получение приоритета:
Лекция 3.Требование явного объявления переменных. Область действия переменных. Константы. Правила написания констант. Операции и знаки операций Требование явного объявления переменных
Использование только оператора Dim для объявления переменных не всегда помогает обнаруживать или предотвращать небольшие ошибки, относящиеся к неявному объявлению переменных.
Чтобы легче было в любое время обнаружить ошибки, связанные с неявным объявлением переменных, создан специальный оператор Option Explicit (режим явности). В случае его использования требуется объявление всех переменных с обязательным использованием оператора Dim.
Для установления режима явности нужно добавить команду Option Explicit в область объявлений модуля, т. е., в начало модуля (перед любыми объявлениями переменных или процедур). Например:
Option Explicit
Sub FirstMessage ( )
……
End Sub
Если случайно добавить неявное объявление переменных в этот модуль, то выдается сообщение об ошибке времени исполнения, с утверждением, что эта переменная является необъявленной.
Для того чтобы редактор VB автоматически включал оператор Option Explicit в каждый новый модуль, нужно выполнить настройку:
Tools – Option – Editor – (выбрать флажок Require Variable Declaration (требуемое объявление переменных)) – OK.
После этого VB автоматически вставляет команду Option Explicit в начало каждого нового модуля, который пользователь (или макрорекордер) вставляет в проект. Выбор опции Require Variable Declaration в окне Option влияет только на новые модули. Если необходимо запросить явное объявление переменных в существующем модуле, нужно добавить Option Explicit, редактируя каждый модуль отдельно.
Присваивание переменной (assigning the variable)
После объявления переменой в нее с помощью оператора присваивания (=) помещается какая-то информация.
Эта операция называется инициализацией переменной.
Например, Dim Счетчик As Single = 25
Dim Объявление As String = "Сегодня мы познакомились с переменными".
Всякий раз, когда создается переменная, ей по умолчанию приписывается некоторое начальное значение означающее, что в переменной "ничего не хранится":
строки инициализируются строками нулевой длины (" ");
числа инициализируются нулевым значением (0);
даты – значением "30 декабря 1899 года". Это значение визуализируется как #12:00:00 AM#;
переменные Boolean – значением False.
Если в процессе присваивания значение представляет собой цифры или текст, то это - буквальное значение. Но в операторах присваивания, кроме буквальных значений, употребляются выражения, являющиеся:
переменными;
константами;
функциями VB;
подпрограммами типа Function.
Область действия или видимости (scope - скауп) переменных
Термин "область видимости" относится к области процедуры или модуля VB, где данная переменная, процедура или другой идентификатор являются доступными. Области действия: процедурного уровня и модульного уровня.
Переменная объявляется только один раз:
либо в разделе объявлений модуля (модульный уровень);
либо в начале процедуры (процедурный уровень).
Область действия процедурного уровня: переменная, объявленная в процедуре, доступна только в этой процедуре. Поэтому говорят, что такая переменная имеет область действия процедурного уровня (procedure-level scope).
В результате, при этом ограничении области действия программист может использовать одно и то же имя переменной в разных процедурах и двусмысленности не возникает.
По умолчанию переменные локальны. При этом слово Private (локальная) работает локально точно также, как и Dim, например, в строках:
Private strProfit
Dim strProfit
Область действия модульного уровня: используется, когда несколько процедур имеют доступ к одной и той же переменной. Обычно эффективней вычислить один раз какое-либо значение и сохранить его в переменной, а затем использовать эту переменную в ряде процедур, чтобы не вычислять одно и то же значение несколько раз.
Для того чтобы переменная была доступна для всех процедур в определенном модуле, нужно поместить оператор Dim в начало модуля (в разделе объявлений), т. е. перед процедурами модуля.
Например:
Dim HelloMsg As String 'используется всеми процедурами в этом модуле
Sub HelloWorld ( )
HelloMsg = "Hello, World!"
MsgBox HelloMsg, , "Окно приветствия"
End Sub
Sub HelloDave ( )
HelloMsg = "Hello, Dave!"
MsgBox HelloMsg, , "Другое окно сообщения"
End Sub
В листинге процедур нет объявлений переменной HelloMsg, т. к. она объявлена в разделе объявлений модуля.
При написании оператора MsgBox в обоих случаях используется несколько аргументов:
первый – переменная HelloMsg;
второй – указание вида кнопки окна сообщений MsgBox. По умолчанию, если аргумент опускается, т. е., если между запятыми – пробел, то в окно встраивается просто кнопка ОК;
третий – заголовок окна сообщения. Он обязательно заключается в кавычки.
В скобках после имени процедуры записываются необходимые аргументы, например, имя файла, к которому относится данная процедура. По умолчанию скобки всегда присутствуют.