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 غير متساويين ...: / }
لا يجب أن تكون عبارات if – else في عدة أسطر باستخدام {} ، إذا كان من الممكن استخدامها في سطر واحد ، أو بدون {} ، لسطر واحد.
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!