عامل التشغيل AndAlso

ينفذ اقتران منطقي دائرة كهربائية قصيرة على تعبيرين.

result = expression1 AndAlso expression2

الأجزاء

  • result
    مطلوبة. أي تعبير Boolean. تكون النتيجةBoolean النتيجة مقارنة بين تعبيرين.

  • expression1
    مطلوبة. أي تعبير Boolean.

  • expression2
    مطلوبة. أي تعبير Boolean.

ملاحظات

يقال بأنّ العملية المنطقية الدائرة القصيرة في حالة أن التعليمات البرمجية المترجمة يمكن أن تتجاوز التقييم لتعبير واحد استناداً إلى نتيجة تعبير آخر. إذا كانت نتيجة تقييم التعبير الأول تحدد النتيجة النهائية للعملية، فليس هناك حاجة لتقييم التعبير الثاني, لأنه لا يمكن أن يغير النتيجة النهائية. الدائرة القصيرة يمكنها تحسين الأداء إذا كان التعبير المتجاوز معقد, أو إذا كان يتضمن استدعاءات اجراء.

إذا كان كلا التعبيرين يقييمان الى True, result هو True. يوضح الجدول التالي كيف يتم تحديد result .

إذا كان expression1 هو

و expression2 هو

قيمة ال result هي

True

True

True

True

False

False

False

(لا يتم تقييمه)

False

استخدام واحدAndAlso لعامل التشغيل هو اختبار وجود مثيل كائن قبل محاولة الوصول إلى أحد أعضائها. سطر التعليمات البرمجية التالية توضح ذلك.

If newObject AndAlso newObject.initFinished Then

الوصول إلى initFinished الخاصية خط التعليمات البرمجية السابقة قد ترمي NullReferenceException الاستثناء إذا newObject المتغير لم يملك مثيل كائن معيّن إليه. ومع ذلك، AndAlso عامل التشغيل يسبب لبرنامج التحويل البرمجي بأن يتجاوز الوصول إلى initFinished إذا كان newObject هو Nothing، لأن Nothing تقييم إلى False.

أنواع البيانات

عامل AndAlso يتم تعريفه فقط لـ نوع بيانات القيمة المنطقية في (Visual Basic). يـحوّل Visual Basic كل معامل عند الضرورة إلى Boolean و ينفذ العملية بالكامل في Boolean. إذا قمت بتعيين النتيجة إلى النوع العددي, Visual Basic يقوم بتحويلها من Boolean إلى ذلك النوع. قد ينتج عن ذلك سلوك غير متوقع. على سبيل المثال، نتائج 5 AndAlso 12 في –1 عند تحويلها إلىInteger.

التحميل الزائد

معامل ال عامل التشغيل And في (Visual Basic) و عامل IsFalse يمكن أن يكون محمل بشكل زائد ، مما يعني أنه يمكن لفئة أو بنية إعادة تعريف سلوكها عندما يحتوي المعامل على نوع هذه الفئة أو البنية. التحميل الزائد لعامل التشغيل And و IsFalse يؤثر على سلوك عامل التشغيل AndAlso . إذا كانت التعليمات البرمجية الخاصة بك تستخدم AndAlso في الفئة أو بنية التي تحميل بشكل زائد And و IsFalse ، تأكد من فهم سلوكها المعاد تعريفة . لمزيد من المعلومات، راجع إجراءات عامل التشغيل.

مثال

يستخدم المثال التالي عامل AndAlsoلتنفيذ اقتران منطقي على تعبيرين. تكون النتيجةBoolean القيمة التي تمثل ما إذا كان تعبير الموحد بالكامل صحيحاً. إذا كان التعبير الأول هو False، لا يتم تقييم الثاني.

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

المثال التالي يعطي نتائج من True, False و False على التوالي. في العملية الحسابية لـ secondCheck،لا يتم تقييم التعبير الثاني لأن الأول مسبقاً False. على الرغم من ذلك، يتم تقييم التعبير الثاني في العملية الحسابية لـ thirdCheck.

يظهر المثال التالي Function الإجراء الذي يبحث عن القيمة المعطاة بين عناصر الصفيف. إذا كان الصفيف فارغ أو إذا تجاوز طول الصفيف, كشف الـ While لم يقوم باختبار عنصر الصفيف مقابل قيمة البحث.

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

راجع أيضًا:

المرجع

عوامل تشغيل المنطقية/الأحادية البت

أسبقية عامل التشغيل في Visual Basic

عوامل تشغيل مسرودة حسب الوظيفة

عامل التشغيل And في (Visual Basic)

عامل IsFalse

المبادئ

عوامل تشغيل منطقية و Bitwise في Visual Basic