الدائرة القصيرة في Java: شرح ومثال
في البرمجة، تعتبر الدائرة القصيرة ميزة قيمة حيث ينتهي تقييم التعبير قبل الأوان عندما تظهر نتيجته. هذا السلوك له آثار هامة في Java، حيث تتضمن التعبيرات عوامل تشغيل مثل || (منطقي OR) و && (منطقي AND) يعرضان هذه الخاصية.
ضمن || التعبير، إذا تم تقييم المعامل الأول على أنه صحيح، فلن تتم معالجة المعاملات المتبقية أبدًا. وبالمثل، في تعبير &&، إذا تم تقييم المعامل الأول على خطأ، فسيتم تجاوز المعاملات المتبقية.
على سبيل المثال، ضع في اعتبارك:
if (a == b || c == d || e == f) {
// ...
}
إذا أرجع a == b صحيحًا، فسيتم تخطي التقييمات اللاحقة لـ c == d وe == f نظرًا لأن التعبير العام قد أدى بالفعل إلى نتيجة حقيقية.
أهمية يصبح قصر الدائرة واضحًا عند التعامل مع الآثار الجانبية. في التعبير:
if (foo() || bar() || baz()) {
// ...
}
إذا عادت foo() إلى القيمة true، فلن يتم تنفيذ bar() وbaz()، مما يمنع أي آثار جانبية محتملة قد تحملها.
هناك تطبيق آخر مفيد لقصر الدائرة الكهربائية وهو في التعامل مع مراجع الكائنات:
if (a != null && a.getFoo() != 42) {
// ...
}
بدون دائرة كهربائية قصيرة، إذا كانت a فارغة، فإن a.getFoo() ستثير NullPointerException. ومع ذلك، بما أن != null يجب أن يتم تقييمه أولاً إلى true، يتم تجنب الاستثناء عندما يكون a null، مما يضمن السلامة.
من المهم ملاحظة أنه ليس كل المشغلين يدعمون قصر الدائرة. | لا تظهر عوامل التشغيل (bitwise OR) و& (bitwise AND)، بالإضافة إلى معظم العوامل الرياضية الأخرى، هذا السلوك. لذلك استخدم || و && بعناية عند البحث عن تأثيرات قصر الدائرة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3