Operator Andalso (Short Circuit Conjunction)
 
Returns the short circuit-and (conjunction) of two numeric values

Syntax

Declare Operator AndAlso ( ByRef lhs As T1, ByRef rhs As T2 ) As Ret

Usage

result = lhs AndAlso rhs

Parameters

lhs
The left-hand side expression.
T1
Any numeric type.
rhs
The right-hand side expression.
T2
Any numeric type.
Ret
An Integer.

Return Value

Returns the short circuit-and (conjunction) of the two operands.

Description

This operator evaluates the left hand side expression. If the result is zero, then zero is immediately returned. If the result is nonzero then the right hand side is evaluated, and the logical result from that is returned.

The truth table below demonstrates all combinations of a short circuit-and operation, the '-' denotes that the operand is not evaluated.

Lhs ValueRhs ValueResult
0-0
nonzero00
nonzerononzero-1


Short-circuiting is performed - only expressions needed to calculate the result are evaluated.

The return type is always an Integer, of the value 0 or -1, denoting false and true respectively.

This operator cannot be overloaded for user-defined types.

Example

'' Using the ANDALSO operator to guard against array access
'' when the index is out of range

Dim As Integer isprime(1 To 10) = { _
    _ ' 1  2  3  4  5  6  7  8  9  10
        0, 1, 1, 0, 1, 0, 1, 0, 0, 0 _
    }

Dim As Integer n
Input "Enter a number between 1 and 10: ", n

'' isprime() array will only be accessed if n is in range
If (n >= 1 And n <= 10) AndAlso isprime(n) Then
    Print "n is prime"
Else
    Print "n is not prime, or out of range"
End If


Differences from QB

  • This operator was not available in QB.

See also