تحتوي Java على نوع بسيط يمثل قيمًا منطقية تسمى Boolean. ولا يمكن أن تكون قيمته إلا إحدى قيمتين: صحيح أو خطأ. كل ذلك يشبه البرنامج التالي الذي يوضح استخدام الأنواع المنطقية:
// عرض القيم المنطقية class BoolTest { public static void main(String args[]) { boolean b = false; ("b هو" + b)؛ // يمكن للقيمة المنطقية التحكم في عبارة if if(b) System.out.println("تم تنفيذ هذا."); System.out.println("لم يتم تنفيذ هذا."); // نتيجة العامل العلائقي هي قيمة منطقية System.out.println("10 > 9 is " + (10 > 9));
نتائج تشغيل هذا البرنامج هي كما يلي:
ب خطأ ب صحيح يتم تنفيذ هذا 10 > 9 صحيح
هناك 3 أشياء مثيرة للاهتمام يجب ملاحظتها حول هذا البرنامج. أولاً، لقد رأيت أنه عند استخدام الأسلوب println () لإخراج قيمة منطقية، فإنه يعرض "صحيح" أو "خطأ". ثانيًا، قيمة المتغير المنطقي بحد ذاته كافية للتحكم في عبارة if. ليست هناك حاجة لكتابة عبارات مثل هذه:
إذا (ب == صحيح) ...
ثالثًا، نتيجة العامل العلائقي (مثل <) هي قيمة منطقية. ولهذا السبب يعرض التعبير 10>9 "صحيح". بالإضافة إلى ذلك، تتم إضافة الأقواس الإضافية على جانبي التعبير 10>9 لأن عامل التشغيل "+" له أسبقية أعلى من العامل ">".
الفرق بين العمليات المنطقية وعمليات البت على أنواع JAVA Boolean
من حيث النتائج، فإن نتائج العمليتين هي نفسها، ولكن العملية المنطقية سيكون لها ظاهرة "ماس كهربائى"، في حين أن العملية ذات البتات لا تحتوي على وظائف "XOR" أكثر من العملية المنطقية.
ظاهرة الدائرة القصيرة
class br { static boolean f1() { return false; static boolean f2() { return true; } static boolean f3() { return true }} boolean f_1 = br.f1()&&br.f2()&&br.f3 ()؛
عندما تكون النتيجة خاطئة، فإن نتيجة العملية && اللاحقة معروفة دون الحاجة إلى تنفيذها، وسوف تقوم JAVA بـ "قصر الدائرة" للعملية اللاحقة، وبالتالي تحسين الأداء.
boolean f_2 = br.f2()||br.f1()||br.f3();
والنتيجة صحيحة، وبالمثل، فإن f2() صحيحة، وليست هناك حاجة لإجراء أي عمليات أخرى.
يبدو الأمر مريحًا وفعالًا للغاية، لكن لا يزال به عيوب.
boolean f_3 = br.f2()||br.f3()&&br.f1();
تصبح النتيجة صحيحة، والتي يجب أن تكون خاطئة. هذا خطأ ناتج عن "ماس كهربائي".
f_3=( br.f2()||br.f3())&&br.f1();
توفر عمليات Bitwise وظيفة XOR التي لا يوفرها المنطق:
منطقية f = صحيح^صحيح؛
النتيجة و = كاذبة؛