المعامل الثلاثي مقابل if/else
تعرّف إلى وقت استخدام كل منهما
المعامل الثلاثي مقابل if/else درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 4 دروس في المجموع.
أداتان لمهمة واحدة
يتيح لك كل من المعامل الثلاثي وif/else التفرّع بناءً على شرط.
يكمن الفرق الأساسي في أن المعامل الثلاثي هو تعبير ينتج قيمة، بينما if/else هي جملة تنفّذ إجراءات.
يساعد اختيار الأداة المناسبة في إبقاء الشفرة واضحة.
المنطق نفسه بطريقتين
تُسنِد بنية if/else هذه تسمية استنادًا إلى العمر.
إنها تعمل، لكنها تتطلب خمسة أسطر لاتخاذ قرار بسيط.
int age = 16;
String status;
if (age >= 18) {
status = "adult";
} else {
status = "minor";
}نسخة المعامل الثلاثي
يمكن كتابة عملية الإسناد نفسها باستخدام معامل ثلاثي في سطر واحد.
يُصرَّح عن المتغير وتتم تهيئته في خطوة واحدة، دون تكرار.
int age = 16;
String status = age >= 18 ? "adult" : "minor";المعامل الثلاثي يعيد قيمة
بما أن المعامل الثلاثي تعبير، يمكنك وضعه في أي موضع يُتوقَّع فيه وجود قيمة: في عمليات الإسناد، وعبارات الإرجاع، والمعاملات.
لا يمكن استخدام if كقيمة؛ فهو يتحكم في مسار التنفيذ فقط.
public class Main {
public static void main(String[] args) {
int n = 5;
System.out.println(n > 0 ? "positive" : "non-positive");
}
}يمكن لـ if/else تنفيذ المزيد
يمكن لـ if/else تنفيذ عدة جمل في كل فرع، مثل تسجيل المعلومات، وتحديث عدة متغيرات، واستدعاء الدوال.
يقتصر المعامل الثلاثي على إنتاج قيمة واحدة، لذلك لا يمكنه احتواء كتلة من الإجراءات.
int balance = -10;
if (balance < 0) {
System.out.println("Overdrawn!");
balance = 0;
} else {
System.out.println("OK");
}مكان الآثار الجانبية هو if/else
إذا كان كل فرع يحتاج إلى تنفيذ إجراء ما، مثل الطباعة أو الحفظ أو طرح استثناء، فاستخدم if/else.
تُستخدم المعاملات الثلاثية لاختيار قيمة، لا لتنفيذ الإجراءات. وإجبارها على احتواء آثار جانبية يضر بسهولة القراءة.
// Prefer if/else when branches act
boolean error = true;
if (error) {
System.out.println("Logging error");
}استخدم معاملًا ثلاثيًا للإسناد
عندما يسنِد الفرعان قيمة إلى المتغير نفسه ببساطة، يزيل المعامل الثلاثي التكرار.
تكرر بنية if/else اسم المتغير مرتين، بينما يذكره المعامل الثلاثي مرة واحدة.
public class Main {
public static void main(String[] args) {
int hour = 14;
String shift = hour < 12 ? "morning" : "afternoon";
System.out.println(shift);
}
}تختلف قواعد الأنواع
يتطلب المعامل الثلاثي أن يشترك الفرعان في نوع متوافق، حتى يكون للتعبير نوع واحد.
لا توجد هذه القاعدة في if/else، لأن كل فرع مستقل ولا ينتج قيمة مشتركة.
// ternary: branches must be compatible types
boolean ok = true;
String msg = ok ? "yes" : "no";الموازنة بين الوضوح والاختصار
يكون المعامل الثلاثي أوضح عند اتخاذ قرار واحد قصير.
أما في الشروط المعقدة أو الفروع الكثيرة، فتكون قراءة if/else if أفضل من معامل ثلاثي متداخل طويل.
اختر الصيغة التي سيتمكن القارئ المستقبلي من فهمها بأسرع ما يمكن.
استخدامهما معًا
يمكنك الجمع بينهما: استخدم if/else للتحكم في مسار التنفيذ، ومعاملًا ثلاثيًا داخل أحد الفروع لاختيار قيمة بسيطة.
وهذا يُبقي الإجراءات واختيار القيم في موضعيهما الطبيعيين.
public class Main {
public static void main(String[] args) {
int qty = 3;
if (qty > 0) {
String word = qty == 1 ? "item" : "items";
System.out.println(qty + " " + word);
}
}
}إرشاد سريع
استخدم معاملًا ثلاثيًا عندما تسنِد أو تعيد إحدى قيمتين بسيطتين.
استخدم if/else عندما تنفّذ الفروع جملًا، أو تتضمن آثارًا جانبية، أو يمتد المنطق عبر عدة شروط.
تحقّق سريع
متى ينبغي تفضيل if/else على المعامل الثلاثي؟
مراجعة
المعاملات الثلاثية تعبيرات تختار قيمة، أما if/else فهي جمل تنفّذ إجراءات.
استخدم المعامل الثلاثي لعمليات الإسناد والإرجاع المختصرة لقيمة واحدة، واستخدم if/else للآثار الجانبية أو الجمل المتعددة أو التفرّع المعقد.
يمكن الجمع بينهما للوصول إلى النتيجة الأوضح.
الأسئلة الشائعة
هل درس «المعامل الثلاثي مقابل if/else» مجاني؟
نعم — نص درس «المعامل الثلاثي مقابل if/else» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 4 دروس في المجموع.
ماذا ستتعلم في «المعامل الثلاثي مقابل if/else»؟
تعرّف إلى وقت استخدام كل منهما تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «المعامل الثلاثي مقابل if/else»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المعامل الثلاثي
- تداخل المعاملات الثلاثية
- المعامل الثلاثي مقابل if/else
- مشكلات قابلية القراءة