المعاملات المنطقية - الجزء الرابع
جزء من قسم Fundamentals في رحلة Java على Coddy — الدرس 26 من 73.
قانون دي مورغان (De Morgan's Law) هو قاعدة تساعدنا في تبسيط التعبيرات التي تحتوي على NOT. عند العمل مع التعبيرات المنطقية، نحتاج أحياناً إلى تبسيطها أو إعادة ترتيبها.
عندما يكون لديك not أمام شرطين مرتبطين بـ and، يمكنك تقسيمها إلى جزأين منفصلين. تصبح الـ and هي or، ويحصل كل جزء على الـ not الخاصة به:
!(A && B) هي نفسها (!A) || (!B)
على سبيل المثال:
// دعونا نتحقق مما إذا كان الرقم ليس (بين 1 و 10)
int number = 15;
// هذان التعبيران متكافئان:
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);
System.out.println(result1); // true
System.out.println(result2); // trueوالعكس صحيح أيضاً: !(A || B) هو نفسه (!A) && (!B)
على سبيل المثال:
// التحقق مما إذا كان الشخص ليس (طالباً أو موظفاً)
boolean isStudent = false;
boolean isEmployed = false;
// هذان التعبيران متكافئان:
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
System.out.println(result1); // true
System.out.println(result2); // trueالتحدي
مبتدئأنت تساعد متجر حيوانات أليفة في إنشاء نظام لتحديد ما إذا كان بإمكانهم بيع حيوان أليف لعميل.
قم بتهيئة المتغيرات التالية:
hasLicenseبالقيمةtruehasSpaceبالقيمةfalsehasExperienceبالقيمةtrue
اكتب التعبيرات المنطقية التالية لتحديد ما إذا كان:
canSellRegularPet: يحتاج العميل إما إلى رخصة (license) أو خبرة (experience)، ويجب أن تتوفر لديه مساحة (space)canSellExoticPet: يحتاج العميل إلى كل من الرخصة والخبرة معاً، ويجب أن تتوفر لديه مساحةcannotSellAnyPet: ليس لدى العميل رخصة وليس لديه خبرة، أو ليس لديه مساحةresult:canSellRegularPetأوcanSellExoticPetأوcannotSellAnyPet
نصيحة: استخدم قيم المتغيرات مباشرة في تعبيراتك. على سبيل المثال، hasSpace هي false، لذا فإن "يجب أن تتوفر لديه مساحة" تعني أنك تستخدم hasSpace كما هي (بدون !) — فالمتغير يحمل بالفعل القيمة الحقيقية. استخدم ! فقط عندما يتطلب الشرط عكس ما يحمله المتغير، مثل "ليس لديه رخصة" ← !hasLicense.
ورقة مرجعية
يساعد قانون دي مورغان في تبسيط التعبيرات المنطقية باستخدام معاملات NOT:
!(A && B) يكافئ (!A) || (!B)
!(A || B) يكافئ (!A) && (!B)
مثال مع AND:
int number = 15;
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);
// كلا التعبيرين متكافئانمثال مع OR:
boolean isStudent = false;
boolean isEmployed = false;
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
// كلا التعبيرين متكافئانجرّب بنفسك
public class Main {
public static void main(String[] args) {
// تهيئة المتغيرات
// حساب الشروط
boolean canSellRegularPet =
boolean canSellExoticPet =
boolean cannotSellAnyPet =
boolean result =
// لا تحذف الأسطر أدناه
System.out.println("Can sell regular pet: " + canSellRegularPet);
System.out.println("Can sell exotic pet: " + canSellExoticPet);
System.out.println("Cannot sell any pet: " + cannotSellAnyPet);
System.out.println("Result: " + result);
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)الزيادة والنقصانالزيادة والنقصان اللاحقةاختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص7أساسيات الإدخال والإخراج
دوال System.outتنسيق المخرجاتكلاس Scannerمراجعة - حتى 120مراجعة - صح أم خطأ5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعاملات المنطقية - الجزء الرابع3المتغيرات - الجزء الثاني
الثوابتقواعد التسميةمراجعة - تهيئة المتغيراتتحويل الأنواع - الجزء الأولتحويل الأنواع - الجزء الثاني6اتخاذ القرار
جملة Ifجملة If - Elseجملة Switchالمعامل الثلاثيمراجعة - If Elseجملة If - Else المتداخلة