العودة إلى الدورة

المعاملات العلاقية والمنطقية

لغة C: من الصفر إلى الاحتراف - الدليل الشامل للمبتدئين

الدرس 11: المعاملات العلاقية والمنطقية

هذه المعاملات ضرورية لاتخاذ القرارات (التحكم في التدفق).

المعاملات العلاقية

تقارن المعاملات العلاقية بين قيمتين وتُرجع نتيجة منطقية (في C، 0 تعني خطأ (False)، وأي قيمة غير صفرية، وعادةً ما تكون 1 تعني صح (True)).

المعاملالوصفمثال
==التساويx == y
!=عدم التساويx != y
>أكبر منx > y
<أصغر منx < y
>=أكبر من أو يساويx >= y
<=أصغر من أو يساويx <= y

تحذير: من الأخطاء الشائعة استخدام علامة يساوي واحدة (=) (للتخصيص) بدلاً من علامة يساوي المزدوجة (==) (للمقارنة). هذا الخطأ غالباً ما يؤدي إلى ثغرات حيث يعيد التخصيص نفسه قيمة غير صفرية (True).

المعاملات المنطقية

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

المعاملالوصفمثال
&&و (AND المنطقية)(age > 18) && (is_citizen) (True إذا كان كلاهما صحيحاً)
``
!ليس (NOT المنطقية)!(is_raining) (يعكس القيمة المنطقية)

تقييم الدائرة القصيرة (Short-Circuit Evaluation)

تستخدم لغة C تقييم الدائرة القصيرة لـ && و ||:

  • في E1 && E2 ، إذا كان E1 خطأ (0)، لا يتم تقييم E2 أبداً.
  • في E1 || E2 ، إذا كان E1 صحيحاً (غير صفر)، لا يتم تقييم E2 أبداً. هذا يحسن الأداء ويمنع الآثار الجانبية في التعبير الثاني إذا كان الأول يحدد النتيجة.