Operator Precedence
When several operations occur in an expression, each part is evaluated and
resolved in a predetermined order called operator precedence. Parentheses can be
used to override the order of precedence and force some parts of an expression
to be evaluated before other parts. Operations within parentheses are always
performed before those outside. Within parentheses, however, normal operator
precedence is maintained.
When expressions contain operators from more than one category, arithmetic
operators are evaluated first, comparison operators are evaluated next, and
logical operators are evaluated last. Comparison operators all have equal
precedence; that is, they are evaluated in the left-to-right order in which they
appear. Arithmetic and logical operators are evaluated in the following order of
precedence:
| Arithmetic | Comparison | Logical | | Negation (-) | Equality (=) | Not | | Exponentiation (^) | Inequality (<>) | And | | Multiplication and division (*, /) | Less than (<) | Or | | Integer division (\) | Greater than (>) | Xor | | Modulus arithmetic (Mod) | Less than or equal to (<=) | Eqv | | Addition and subtraction (+, -) | Greater than or equal to (>=) | Imp | | String concatenation (&) | Is | & |
When multiplication and division occur together in an expression, each
operation is evaluated as it occurs from left to right. Likewise, when addition
and subtraction occur together in an expression, each operation is evaluated in
order of appearance from left to right.
The string concatenation operator (&) is not an arithmetic
operator, but in precedence it does fall after all arithmetic operators and
before all comparison operators. The Is operator is an object reference
comparison operator. It does not compare objects or their values; it checks only
to determine if two object references refer to the same object.
|