Bagikan melalui


Operator AndAlso (Visual Basic)

Melakukan sambungan logika korsleting pada dua ekspresi.

Sintaks

result = expression1 AndAlso expression2  

Generator

Term Definisi
result Harus diisi. Ekspresi Boolean apa pun. Hasilnya adalah hasil Boolean perbandingan dari dua ekspresi.
expression1 Harus diisi. Ekspresi Boolean apa pun.
expression2 Harus diisi. Ekspresi Boolean apa pun.

Keterangan

Operasi logika disebut dapat membuat korsleting 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. Korsleting dapat meningkatkan performa jika ekspresi yang dilewati rumit, atau jika melibatkan panggilan prosedur.

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

Jika expression1 adalah Dan expression2 adalah Nilai dari result adalah
True True True
True False False
False (tidak dinilai) False

Catatan

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

Jenis Data

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

Kelebihan beban

Operator And dan Operator IsFalse dapat kelebihan beban, yang berarti bahwa kelas atau struktur dapat menentukan kembali perilaku mereka ketika operan memiliki jenis kelas atau struktur tersebut. Membebani operator And dan IsFalse secara berlebih memengaruhi perilaku operator AndAlso. Jika kode Anda menggunakan AndAlso pada kelas atau struktur yang kelebihan beban And dan IsFalse, pastikan Anda memahami perilaku yang diartikan ulang. Untuk informasi lebih lanjut, lihat Prosedur Operator.

Contoh 1

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

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 masing-masing True, False, dan False. Dalam perhitungan secondCheck, ekspresi kedua tidak dinilai karena yang pertama sudah False. Namun, ekspresi kedua dievaluasi dalam perhitungan thirdCheck.

Contoh 2

Contoh berikut menunjukkan prosedur Functionyang mencari nilai tertentu di antara elemen array. Jika array kosong, atau jika panjang array telah terlampaui, pernyataan While 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