fbpx

تعلم لغة الجافا – الدرس الثالث الشروط Conditionals



int a = 4;
boolean b = a == 4;

if (b) {
    System.out.println("It's true!");
}

بالطبع لا نخصص عادةً تعبيرًا شرطيًا لمنطقي. عادة ، نستخدم فقط النسخة القصيرة:

int a = 4;

if (a == 4) {
    System.out.println("Ohhh! So a is 4!");
}

العوامل المنطقية

ليس هناك العديد من عوامل التشغيل لاستخدامها في العبارات الشرطية ومعظمها مباشرة إلى الأمام:

int a = 4;
int b = 5;
boolean result;
result = a < b; // صحيح
result = a > b; // خطا
result = a <= 4; // أصغر أو يساوي 4 - صحيح
result = b >= 6; // ب أكبر أو يساوي 6 - خطأ
result = a == b; // يساوي ب - خطأ
result = a != b; // a لا تساوي b - true
result = a > b || a < b; // منطقي أو - صحيح
result = 3 < a && a < 6; // منطقي - صحيح
result = !result; // لا المنطقي - خطأ

if – else – between

عبارة if، else في Java بسيطة جدًا.

if (a == b) {
// a و b متساويان ، لنفعل شيئًا رائعًا}

ويمكننا أيضًا إضافة عبارة أخرى بعد if ، للقيام بشيء إذا لم يكن الشرط صحيحًا

if (a == b) {
// نحن نعلم بالفعل هذا الجزء
} else {
// a و b غير متساويين ...: /
}

لا يجب أن تكون عبارات ifelse في عدة أسطر باستخدام {} ، إذا كان من الممكن استخدامها في سطر واحد ، أو بدون {} ، لسطر واحد.

if (a == b)
    System.out.println("Another line Wow!");
else
    System.out.println("Double rainbow!");

على الرغم من أن هذه الطريقة قد تكون مفيدة لجعل التعليمات البرمجية الخاصة بك أقصر باستخدام عدد أقل من الأسطر ، نوصي بشدة للمبتدئين بعدم استخدام هذا الإصدار القصير من العبارات واستخدام الإصدار الكامل دائمًا مع {}. هذا ينطبق على كل عبارة يمكن اختصارها إلى سطر واحد (للوقت ، وما إلى ذلك).

الجانب القبيح ل If

هناك طريقة أخرى لكتابة سطر واحد if – وإلا باستخدام عامل ؟ :

int a = 4;
int result = a == 4 ? 1 : 8;

// النتيجة ستكون 1
// هذا يعادل
int result;

if (a == 4) {
    result = 1;
} else {
    result = 8;
}

مرة أخرى ، نوصي بشدة للمبتدئين بعدم استخدام هذا الإصدار من if.

== و equals

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

String a = new String("Wow");
String b = new String("Wow");
String sameA = a;

boolean r1 = a == b;      // هذا خطأ ، لأن a و b ليسا نفس الشيء
boolean r2 = a.equals(b); // هذا صحيح ، لأن a و b متساويان منطقياً
boolean r3 = a == sameA;  // هذا صحيح ، لأن a و b متساويان منطقياً

تمرين

قم بتغيير المتغيرات في القسم الأول ، بحيث يتم حل كل جملة إذا كانت صحيحة.

public class Main {
    public static void main(String[] args) {
        String a = new String("Wow");
        String b = "Wow";
        String c = a;
        String d = c;

        boolean b1 = a == b;
        boolean b2 = d.equals(b + "!");
        boolean b3 = !c.equals(a);

        if (b1 && b2 && b3) {
            System.out.println("Success!");
        }
    }
}

الحل

public class Main {
    public static void main(String[] args) {
        String a = "Wow";
        String b = a;
        String c = b + "!";
        String d = c;

        boolean b1 = a == b;
        boolean b2 = d.equals(b + "!");
        boolean b3 = !c.equals(a);

        if (b1 && b2 && b3) {
            System.out.println("Success!");
        }
    }
}

سنحصل على النتيجة التالية عند التشغيل

Success!

الدرس الرابع






Leave a Reply