Operator Precedence in Visual Basic

Understanding the order of operations in Visual Basic .NET

Understanding Operator Precedence

In Visual Basic, like in many programming languages, operators are evaluated in a specific order. This order is known as operator precedence. When an expression contains multiple operators, precedence rules determine which operations are performed first. Understanding these rules is crucial for writing correct and predictable code.

Operators with higher precedence are evaluated before operators with lower precedence. If operators have the same precedence, they are typically evaluated from left to right.

Operator Precedence Table

The following table lists the Visual Basic operators by precedence, from highest to lowest:

Category Operators Description
Parentheses ( ) Group expressions to override default precedence.
Exponentiation ^ Raises a number to the power of another.
Unary Identity and Negation +, - Positive or negative sign of a number.
Multiplication and Division *, /, \, Mod Arithmetic multiplication, floating-point division, integer division, remainder.
Addition and Subtraction +, - Arithmetic addition and subtraction.
Concatenation & String concatenation.
Relational =, <, >, <=, >=, <>, Is, IsNot, Like Comparison of values.
Logical NOT Not Logical negation of a Boolean expression.
Logical AND And, AndAlso Logical conjunction.
Logical Inclusive OR Or, OrElse Logical disjunction.
Logical Exclusive OR Xor Logical exclusive OR.
Logical Implication Imp Logical implication.
Logical Equivalence Eqv Logical equivalence.
Assignment = (in assignment statements) Assigns a value to a variable.

Examples

Example 1: Basic Arithmetic

Consider the expression: 5 + 3 * 2

According to precedence rules, multiplication (*) has higher precedence than addition (+). So, the multiplication is performed first:

5 + (3 * 2)  ' Result is 5 + 6

The final result is 11.

Example 2: Using Parentheses

If you want to perform the addition first, you can use parentheses:

Consider the expression: (5 + 3) * 2

The parentheses force the addition to be evaluated first:

(5 + 3) * 2  ' Result is 8 * 2

The final result is 16.

Example 3: Mixed Operators

Consider the expression: 10 / 2 + 3 ^ 2 Mod 4

Let's break down the evaluation:

  1. Exponentiation (^): 3 ^ 2 evaluates to 9.
    10 / 2 + 9 Mod 4
  2. Multiplication and Division (/, \, Mod): These have the same precedence and are evaluated left-to-right.
    • 10 / 2 evaluates to 5.0 (floating-point division).
      5.0 + 9 Mod 4
    • 9 Mod 4 (remainder of 9 divided by 4) evaluates to 1.
      5.0 + 1
  3. Addition and Subtraction (+, -):
    • 5.0 + 1 evaluates to 6.0.
      6.0

The final result is 6.0.

Important Notes

^