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 Function
yang 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