سؤال

حاليا، أنا أستخدم && و || بدلا من و أو لأن هذا هو كيف تم تدريسني. في معظم اللغات، ومع ذلك، كلاهما هو بناء جملة صالحة. هل هناك أي مزايا إلى واحد أو آخر بأي لغة؟

لقد حاولت البحث عن هذا السؤال، لكنها صلبة بعض الشيء. لا يفسر مدخلاتي بشكل صحيح.

هل كانت مفيدة؟

المحلول

أنت تسأل "هل هناك أي مزايا واحدة أو أخرى بأي لغة؟" هذا، بالطبع، يعتمد على لغة البرمجة.

اللغات التي تنفذ على حد سواء and و && (وفي المقابل or و ||) سوف تفعل ذلك واحدا من طريقتين:

  • كلاهما يتصرف بالضبط بنفس الطريقة. في هذه الحالة، لا توجد ميزة توفرها اللغة في استخدام واحد عبر الآخر.

  • كل يتصرف بشكل مختلف. في هذه الحالة، تكون الميزة هي أنه يمكنك الحصول على سلوك مختلف باستخدام واحد أو آخر.

يبدو أن كل شيء يتصدر بعض الشيء، لكنه حقا محددا كما يمكن للمرء أن يحصل دون الحديث عن لغة محددة. سؤالك يريد صراحة معرفة الكل اللغات، لكنها سؤال يجب الإجابة عليه لكل لغة.

نصائح أخرى

بيرل لديه كل أربعة من {&& || و} لكنهم يختلفون في أسبابهم. "و" أو "أو" لها أسبقية منخفضة حقا حتى تتمكن من فعل أشياء مثل "الدالة المعقدة - مكالمة هنا أو يموت $!" ولن تكون لديك بطريق الخطأ "أو" يزداد شيئا ما على جانبه الأيسر الذي لم ترغب في ذلك.

ذلك يعتمد على اللغة، ولكن على PHP، سأكون حريصا على استخدام && مقابل "و". تلك التي غالبا ما أستخدمها هي "&&" و "||"

http://us3.php.net/manual/en/language.operators.logical.php.

$g = true && false; // $g will be assigned to (true && false) which is false
$h = true and false; // $h will be assigned to true

في بعض اللغات && سيكون لها الأسبقية المشغل أعلى من AND.

إذا كان كلاهما يعمل بشكل جيد، فسوف أقول إنه تفضيلات شخصية حقا، في معظم الحالات، يتم تجميعها في نفس الكود الثنائي مثل هذا: 1110001000100010100100101010101010 [لا رمز حقيقي، مجرد مثال].

&& = فتاتين من نفس المفتاح. و = ثلاثة ضغطات المفاتيح من مفاتيح مختلفة.

لست متأكدا من اللغة التي تستخدمها، ولكن بعض اللغات تفرق بين مشغل منطقي عادي ومشغل دائرة قصيرة. على سبيل المثال، فيما يلي مشغلين منطقيين طبيعيين في ماتلاب:

C = or(A,B);
C = A | B;  % Exactly the same as above

ومع ذلك، هذا هو مشغل ماس كهربائى:

C = A || B;

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

هنا ويكيبيديا رابط مناقشة مشغلي الدائرة القصيرة وبناء جملة لبضع لغات.

ما لم تكن هناك أي مشاكل ذات رأس الأسبقية، أود أن أقول أن هناك اختلافات في قابلية القراءة. النظر فيما يلي:

if (&x == &y && &y == &z) {
    // ..
}

#define AND &&
if (&x == &y AND &y == &z) {
    // ..
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top