AndAlso İşleci (Visual Basic)
İki ifadede kısa devre mantıksal bağlayı gerçekleştirir.
Sözdizimi
result = expression1 AndAlso expression2
Parça
Süre | Tanım |
---|---|
result |
Gerekli. Herhangi bir Boolean ifade. Sonuç, Boolean iki ifadenin karşılaştırmasının sonucudur. |
expression1 |
Gerekli. Herhangi bir Boolean ifade. |
expression2 |
Gerekli. Herhangi bir Boolean ifade. |
Açıklamalar
Derlenen kod başka bir ifadenin sonucuna bağlı olarak bir ifadenin değerlendirmesini atlayabilirse mantıksal işlemin kısa devre olduğu söylenir. değerlendirilen ilk ifadenin sonucu işlemin nihai sonucunu belirlerse, ikinci ifadeyi değerlendirmeye gerek yoktur, çünkü nihai sonucu değiştiremez. Atlanan ifade karmaşıksa veya yordam çağrıları içeriyorsa kısa devre performansı artırabilir.
her iki ifade de olarak değerlendirilirse True
, result
olur True
. Aşağıdaki tabloda nasıl result
belirlendiği gösterilmektedir.
Varsa expression1 |
Ve expression2 |
değeri result : |
---|---|---|
True |
True |
True |
True |
False |
False |
False |
(değerlendirilmedi) | False |
Not
Boole karşılaştırmasında And
, işleç her zaman yordam çağrıları yapmayı da içerebilen her iki ifadeyi de değerlendirir. AndAlso İşleci kısa devre gerçekleştirir; başka bir deyişle , ise expression1
False
expression2
değerlendirilmez.
Veri Türleri
işleci AndAlso
yalnızca Boole Veri Türü için tanımlanır. Visual Basic, ifadeyi değerlendirmeden önce her işleneni Boolean
gereken şekilde dönüştürür. Sonucu sayısal bir türe atarsanız, Visual Basic sonucu Boolean
türünden False
0
olur ve True
olur -1
gibi bir türe dönüştürür.
Daha fazla bilgi için bkz . Boole Türü Dönüştürmeleri.
Aşırı Yükleme
And İşleci ve IsFalse İşleci aşırı yüklenebilir; başka bir deyişle, bir işlenen söz konusu sınıf veya yapı türüne sahip olduğunda bir sınıf veya yapı davranışını yeniden tanımlayabilir. ve IsFalse
işleçlerinin aşırı yüklenmesi And
işlecin davranışını AndAlso
etkiler. Kodunuz ve IsFalse
öğesini aşırı yükleyen And
bir sınıf veya yapı kullanıyorsaAndAlso
, yeniden tanımlanmış davranışlarını anladığınızdan emin olun. Daha fazla bilgi için bkz . İşleç Yordamları.
Örnek 1
Aşağıdaki örnek, iki ifade üzerinde mantıksal bir bağlaç gerçekleştirmek için işlecini kullanır AndAlso
. Sonuç, birleştirilmiş ifadenin tamamının doğru olup olmadığını gösteren bir Boolean
değerdir. İlk ifade ise False
, ikinci ifade değerlendirilmez.
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
Yukarıdaki örnek sırasıyla , False
ve False
sonuçlarını True
üretir. hesaplamasında secondCheck
, birinci ifade zaten False
olduğundan ikinci ifade değerlendirilmez. Ancak, ikinci ifade hesaplamasında thirdCheck
değerlendirilir.
Örnek 2
Aşağıdaki örnekte, bir Function
dizinin öğeleri arasında belirli bir değeri arayan bir yordam gösterilmektedir. Dizi boşsa veya dizi uzunluğu aşıldıysa, While
deyimi dizi öğesini arama değeriyle test etmez.
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