VB.Net邏輯/位運算子

2019-10-16 23:02:28

下表顯示了VB.Net支援的所有邏輯運算子。假設變數A = True,變數B = False,則:

運算子 描述 說明
And 它是邏輯運算子,也是按位元運算子。如果兩個運算元都是:True,則條件成立。 該運算子不執行短路,即它評估兩個表示式的值。 (A And B)結果為:False
Or 它是邏輯以及按位元或運算子。如果兩個運算元中的任何一個為True,則條件成立。 該運算子不執行短路,即它評估兩個表示式。 (A Or B)結果為:True
Not 它是邏輯,也是按位元運算子。用於反轉其運算元的邏輯狀態。如果條件成立,那麼邏輯非運算子結果為:False Not(A And B)結果為:True
Xor 它是邏輯,也是按位元的邏輯互斥或運算子。 如果兩個表示式均為True或兩個表示式均為False,則返回True; 否則返回False。 該運算子不執行短路,它總是評估這兩個表示式,並且沒有短路對應。 A Xor B結果為:True
AndAlso 這是邏輯AND運算子,它只適用於布林資料,並可執行短路。 (A AndAlso B)結果為:False
OrElse 這是合乎邏輯的OR運算子,它只適用於布林資料,並可執行短路。 (A OrElse B)結果為:True
IsFalse 它確定一個表示式是否為False
IsTrue 它確定一個表示式是否為True

範例

嘗試下面的例子來理解VB.Net中可用的所有邏輯/位運算子:
檔案:logicalOp.vb -

Module logicalOp

    Sub Main()
        Dim a As Boolean = True
        Dim b As Boolean = True
        Dim c As Integer = 5
        Dim d As Integer = 20
        'logical And, Or and Xor Checking
        If (a And b) Then
            Console.WriteLine("Line 1 - Condition is true")
        End If
        If (a Or b) Then
            Console.WriteLine("Line 2 - Condition is true")
        End If
        If (a Xor b) Then
            Console.WriteLine("Line 3 - Condition is true")
        End If
        'bitwise And, Or and Xor Checking'
        If (c And d) Then
            Console.WriteLine("Line 4 - Condition is true")
        End If
        If (c Or d) Then
            Console.WriteLine("Line 5 - Condition is true")
        End If
        If (c Or d) Then
            Console.WriteLine("Line 6 - Condition is true")
        End If
        'Only logical operators
        If (a AndAlso b) Then
            Console.WriteLine("Line 7 - Condition is true")
        End If
        If (a OrElse b) Then
            Console.WriteLine("Line 8 - Condition is true")
        End If

        ' lets change the value of  a and b '
        a = False
        b = True
        If (a And b) Then
            Console.WriteLine("Line 9 - Condition is true")
        Else
            Console.WriteLine("Line 9 - Condition is not true")
        End If
        If (Not (a And b)) Then
            Console.WriteLine("Line 10 - Condition is true")
        End If
        Console.ReadLine()
    End Sub
End Module

執行上面範例程式碼,得到以下結果 -

F:\worksp\vb.net\operators>vbc logicalOp.vb
F:\worksp\vb.net\operators>logicalOp.exe
Line 1 - Condition is true
Line 2 - Condition is true
Line 4 - Condition is true
Line 5 - Condition is true
Line 6 - Condition is true
Line 7 - Condition is true
Line 8 - Condition is true
Line 9 - Condition is not true
Line 10 - Condition is true