المسارات
/
Julia
Julia
/
المنهج
/
الجمل الشرطية
ال

الجمل الشرطية في Julia

7 تمارين

نبذة عن الجمل الشرطية

عوامل المقارنة

عوامل المقارنة في Julia تشبه تلك الموجودة في لغات أخرى كثيرة، وإن كانت تتضمن بعض الخيارات الإضافية لعشّاق الرياضيات.

أما للمساواة، فالعاملان هما == (يساوي) و != أو ≠ (لا يساوي).

txt = "abc"
txt == "abc"  # true
txt != "abc"  # false
txt ≠ "abc"  # false (synonym for !=)

إضافة إلى ذلك، لدينا مختلف عوامل الأكبر/الأصغر.

1 < 3  # true
3 > 3  # false
3 <= 3  # true
3 ≤ 3  # true (synonym for <=)
4 >= 3  # true
4 ≥ 3  # true (synonym for >=)

وكما هي الحال غالبًا مع Julia، يسهّل المحرر المناسب استخدام الرموز الرياضية. اكتب \ne أو \le أو \ge ثم TAB للحصول على ≠ أو ≤ أو ≥.

لا يستخدم المثال السابق سوى الأعداد، لكننا سنرى في أجزاء أخرى من المنهج أن أنواعًا إضافية متنوعة لها ترتيب خاص بها ويمكن اختبارها بعوامل الأكبر/الأصغر.

يمكن ربط عوامل المقارنة بعضها ببعض، ما يتيح صياغة واضحة وموجزة:

n = 3
1 ≤ n ≤ 5  # true (n "between" two limits)

المثال السابق مكافئ لـ 1 ≤ n && n ≤ 5.

التفريع باستخدام if

هذه هي الصيغة الكاملة لـجملة if الشرطية:

if conditional1
    statements...
elseif conditional2
    statements...
else
    statements...
end

لا حاجة إلى الأقواس الهلالية () أو الأقواس المعقوفة {}، والمسافات البادئة "مجرد" وسيلة لتحسين قابلية القراءة (لكن قابلية القراءة مهمة جدًا!).

كل من elseif و else اختياري، ويمكن أن توجد عدة كتل من elseif. ومع ذلك، لا بد من end.

يمكن تداخل جمل if، وقد ترغب في تحسين قابلية القراءة بالاستخدام المدروس للأقواس الهلالية والمسافات البادئة والتعليقات.

أقصر صيغة لجملة if الشرطية ستكون شيئًا كهذا:

if n < 0
    n = 0
end

وكتذكير: لا يمكن استخدام كشروط إلا التعبيرات التي تُقيَّم إلى true أو false. تتجنّب Julia عمدًا أي مفهوم للـ"صدقية"، لذا فالقيم الصفرية والسلاسل النصية الفارغة والمصفوفات الفارغة ليست مكافئة لـ false.

العامل الثلاثي

من الحالات البسيطة والشائعة اختيار إحدى قيمتين بناءً على شرط.

تمتلك Julia، مثل لغات كثيرة، عاملًا ثلاثيًا يجعل هذا أكثر إيجازًا.

الصياغة هي conditional ? value_if_true : value_if_false.

لذا يمكن إعادة كتابة المثال السابق على النحو التالي:

n = n < 0 ? 0 : n

لا يطلب المصرّف الأقواس الهلالية، لكنها قد تحسّن قابلية القراءة.

هل تحتوي Julia على عبارة match؟

لا توجد حاليًا بنية match/case في اللغة الأساسية.

في الحالات البسيطة، يُوصى باستخدام if..elseif..else.

ولمطابقة الأنماط المتقدمة، على غرار Scala، تحظى حزمة Match.jl بشعبية. لكن، كما هي الحال مع معظم الحزم الخارجية، لا يتوفر Match في مشغّل اختبارات Exercism.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة

تعلّم الجمل الشرطية

التدريب مقفل

افتح 5 تمارين إضافية لممارسة الجمل الشرطية