Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İki ifadede kısa devre mantıksal bağlayı gerçekleştirir.
Sözdizimi
result = expression1 AndAlso expression2
Parçalar
| 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 |
Uyarı
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 İşlecikısa devre gerçekleştirir; başka bir deyişle , ise expression1Falseexpression2 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 False0 olur ve True olur -1gibi 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 İşleciaşı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 , Falseve Falsesonuçlarını Trueüretir. hesaplamasında secondCheck, birinci ifade zaten Falseolduğundan ikinci ifade değerlendirilmez. Ancak, ikinci ifade hesaplamasında thirdCheckdeğ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