Книга: VBA для чайников
Получение приоритета
Получение приоритета
В более сложных выражениях, включающих несколько знаков операций, VBA нужно знать, какие операции выполнять первыми, вторыми, а какие третьими. В выражении intA + intB * intC два знака операций: + (операция сложения) и * (операция умножения). На русском это выражение читается как "intA плюс intB умножить на intC".
В данном выражении символ * идет вторым, но он имеет приоритет перед операцией сложения. Сначала VBA умножит intB на intC, а уж затем добавит полученный результат к intA. Как можно догадаться из этого примера, VBA следует определенной последовательности выполнения отдельных частей выражения, когда в выражении несколько знаков операций.
Чтобы изменить последовательность операций, порождаемую приоритетами, в выражении используются скобки. Если вы напечатаете (intA + intB) * intC то VBA сначала сложит две переменные, а затем умножит результат на значение переменной intC.
Но каковы правила VBA для порядка выполнения операций в отсутствие скобок? Если выражение содержит знаки операций из двух или нескольких категорий, то VBA выполняет операции из разных категорий в следующем порядке.
1. Арифметические операции и конкатенация.
2. Операции сравнения.
3. Логические операции.
Внутри каждой категории VBA тоже имеет правила порядка выполнения операций.
Арифметические операции, сравнение и логические операции осуществляются в порядке, соответствующем их представлению в табл. 7.2. Операции сравнения в VBA выполняются в том порядке, в каком они идут, слева направо. Если в выражении встречается несколько операций одного уровня, они тоже обрабатываются слева направо.
Таблица 7.2. Порядок выполнения операций в VBA (внутри каждой категории операции выполняются в том порядке, в котором приведены)
Знаки операций |
Операции |
Арифметические |
|
? |
Возведение в степень |
- |
Отрицание |
* или / |
Умножение или деление |
Целочисленное деление |
|
Mod |
Вычисление остатка деления |
+ или - |
Сложение или вычитание |
Конкатенация |
|
& |
Конкатенация строк |
Сравнения |
|
= |
Равенство |
<> |
Неравенство (не равно) |
< |
Меньше |
> |
Больше |
<= |
Меньше или равно |
>= |
Больше или равно |
Like |
Сравнение строк с заданным образцом |
Is |
Проверка идентичности ссылок на объекты |
Логические |
|
Not |
Логическое НЕТ |
And |
Логическое И |
Or |
Логическое ИЛИ |
Хоr |
Логическое Исключительное ИЛИ |
Eqv |
Логическая эквивалентность |
Imp |
Логическая импликация |
- Работа с переменными
- Объявление переменных
- Где объявлять переменные
- Когда объявлять переменные
- Выбор и использование типов данных
- Задание области видимости переменной
- Выражен-и-я
- Работа с постоянными значениями
- Плоды использования констант
- Использование констант для атрибутов
- Знаки операций
- Получение приоритета
- Вычисления с помощью арифметических операторов
- Объединение текста
- Дополнительные сведения о типах данных
- Преобразование типов данных
- Тип Variant
- Выбор числового типа данных
- Когда использовать логические переменные
- Работа с датами
- Информацию - в строку
- Получение статистики
- Получение помощи
- Получение помощи по работе с книгой и компакт-диском
- Получение помощи по Windows SharePoint Services 3.0
- Получение доменного имени
- 4.8. Получение прав root
- Получение страниц заполненных нулями
- Получение статистики браузера
- Получение, создание и отправка электронной корреспонденции
- 18.3. Получение данных акселерометра
- 18.2.1. Получение истинно случайных чисел из Web
- 6.2. Временное получение полномочий пользователя root