Bagikan melalui


AndAlso Operator (Visual Basic)

Melakukan hubungan logis sirkuit pendek pada dua ekspresi.

Sintaksis

result = expression1 AndAlso expression2  

Bagian

Istilah Definisi
result Dibutuhkan. Ekspresi apa pun Boolean . Hasilnya adalah hasil Boolean perbandingan dari dua ekspresi.
expression1 Dibutuhkan. Ekspresi apa pun Boolean .
expression2 Dibutuhkan. Ekspresi apa pun Boolean .

Komentar

Operasi logis dikatakan sebagai sirkuit pendek jika kode yang dikompilasi dapat melewati evaluasi satu ekspresi tergantung pada hasil ekspresi lain. Jika hasil ekspresi pertama yang dievaluasi menentukan hasil akhir operasi, tidak perlu mengevaluasi ekspresi kedua, karena tidak dapat mengubah hasil akhir. Sirkuit pendek dapat meningkatkan performa jika ekspresi yang dilewati kompleks, atau jika melibatkan panggilan prosedur.

Jika kedua ekspresi mengevaluasi ke True, result adalah True. Tabel berikut ini menggambarkan bagaimana result ditentukan.

Jika expression1 adalah Dan expression2 adalah Nilainya result adalah
True True True
True False False
False (tidak dievaluasi) False

Nota

Dalam perbandingan Boolean, And operator selalu mengevaluasi kedua ekspresi, yang dapat mencakup melakukan panggilan prosedur. Operator AndAlso melakukan sirkuit pendek, yang berarti bahwa jika expression1 adalah False, maka expression2 tidak dievaluasi.

Tipe Data

Operator AndAlso hanya didefinisikan untuk Jenis Data Boolean. Visual Basic mengonversi setiap operand seperlunya sebelum Boolean mengevaluasi ekspresi. Jika Anda menetapkan hasilnya ke jenis numerik, Visual Basic mengonversinya dari Boolean ke jenis tersebut sehingga False menjadi 0 dan True menjadi -1. Untuk informasi selengkapnya, lihat Konversi Jenis Boolean.

Beban Berlebih

Operator Dan dan Operator IsFalse dapat kelebihan beban, yang berarti bahwa kelas atau struktur dapat menentukan ulang perilaku mereka ketika operand memiliki jenis kelas atau struktur tersebut. Kelebihan beban And operator dan IsFalse memengaruhi perilaku AndAlso operator. Jika kode Anda menggunakan AndAlso pada kelas atau struktur yang kelebihan beban And dan IsFalse, pastikan Anda memahami perilaku yang ditentukan ulang. Untuk informasi selengkapnya, lihat Prosedur Operator.

Contoh 1

Contoh berikut menggunakan AndAlso operator untuk melakukan konjunsi logis pada dua ekspresi. Hasilnya adalah Boolean nilai yang mewakili apakah seluruh ekspresi yang digabungkan adalah benar. Jika ekspresi pertama adalah False, yang kedua tidak dievaluasi.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b AndAlso b > c
secondCheck = b > a AndAlso b > c
thirdCheck = a > b AndAlso c > b

Contoh sebelumnya menghasilkan hasil True, , Falsedan False, masing-masing. Dalam perhitungan secondCheck, ekspresi kedua tidak dievaluasi karena yang pertama sudah False. Namun, ekspresi kedua dievaluasi dalam perhitungan thirdCheck.

Contoh 2

Contoh berikut menunjukkan Function prosedur yang mencari nilai tertentu di antara elemen array. Jika array kosong, atau jika panjang array telah terlampaui, While pernyataan tidak menguji elemen array terhadap nilai pencarian.

Public Function findValue(ByVal arr() As Double, 
    ByVal searchValue As Double) As Double
    Dim i As Integer = 0
    While i <= UBound(arr) AndAlso arr(i) <> searchValue
        ' If i is greater than UBound(arr), searchValue is not checked.
        i += 1
    End While
    If i > UBound(arr) Then i = -1
    Return i
End Function

Lihat juga