Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

المعاملات المنطقية - الجزء الثالث

جزء من قسم Fundamentals في رحلة Java على Coddy. الدرس 25 من 73.

عند فحص شروط متعددة، يتوقف الكمبيوتر عن التحقق بمجرد معرفته بالنتيجة النهائية (يُسمى هذا التقييم المبتور أو short-circuit evaluation).

على سبيل المثال:

int x = 0;
int y = 5;
boolean result = x != 0 && y / x > 2;

هنا x يساوي 0، ولذلك لن يتم تقييم y / x > 2. إذا قمنا بقلب الترتيب:

boolean result = y / x > 2 && x != 0;

سيؤدي هذا إلى حدوث خطأ لأن y سيتم تقسيمها على 0، وهو أمر غير مسموح به في الرياضيات.

تُستخدم هذه التقنية لتحسين تقييم التعبيرات المنطقية (logical expressions). على سبيل المثال:

int a = 0;
int b = 2;
int c = 3;
int d = 5;
boolean result = (a > 0 && b < 2) || (c < -5 && d < 10);

في هذا المثال، لن يتم تقييم b < 2 و d < 10 لأن a > 0 و c < -5 كلاهما خاطئ.

challenge icon

التحدي

مبتدئ

دعنا ننشئ برنامجًا لتحديد ما إذا كان اليوم مناسبًا لإنتاج الطاقة عبر الألواح الشمسية

قم بتهيئة هذه المتغيرات:

  • isSunny بالقيمة true
  • windSpeed بالقيمة 5.4
  • temperature بالقيمة 23
  • solarPanelOutput بالقيمة 9
  • isCloudy بالقيمة false

أنشئ تعبيرًا منطقيًا واحدًا يتحقق من جميع هذه الشروط:

  • الطقس مشمس
  • سرعة الرياح أقل من 10
  • إنتاج الألواح الشمسية أقل من 15
  • درجة الحرارة أعلى من 20 أو لا توجد سحب

جرّب بنفسك

public class Main {
    public static void main(String[] args) {
        // تهيئة المتغيرات
        // استبدل كل قيمة نائبة أدناه بالقيمة التي تطلبها المهمة
        boolean isSunny = false;
        double windSpeed = 0.0;
        int temperature = 0;
        int solarPanelOutput = 0;
        boolean isCloudy = false;

        // التعبير المنطقي الكامل
        // استبدل العنصر النائب أدناه بتعبير واحد يجمع الشروط الأربعة كلها
        boolean result = false;

        // لا تحذف الأسطر أدناه
        System.out.println("Checking conditions for solar energy production...");
        System.out.println("1. Is it sunny? " + isSunny);
        System.out.println("2. Is wind speed safe? " + (windSpeed < 10));
        System.out.println("3. Can panels produce more? " + (solarPanelOutput < 15));
        System.out.println("4. Is temperature good OR no clouds? " + (temperature > 20 || !isCloudy));
        System.out.println("\nFinal result - Good day for solar energy production: " + result);
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals

تدرّب بنفسك: مترجم Java عبر الإنترنت