الشرطيات

📄 الأصل: conditional.na

📦 تحميل الملف: ⬇ تحميل

🔗 عرض الملف:

	
		--- SPDX-License-Identifier: Apache-2.0
--- Copyright © The Naftah Project Authors

---*
هذا الجزء من الملف يوضح كيفية استخدام تعابير التحكم الشرطي في لغة نفطه، والتي تشمل:

- التعبير الشرطي القياسي باستخدام "إذا ... إذن" و"غير_ذلك" و"غير_ذلك_إذا"
- التعابير الثلاثية (ternary) باستخدام الصيغة `؟ ... : ...`
- تعابير القيمة الافتراضية (nullish coalescing) باستخدام الصيغة `؟؟ ...`

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

تُظهر هذه الأمثلة مرونة لغة نفطه في كتابة منطق البرمجة بطريقة واضحة وقابلة للقراءة.
*---

--- تعريف متغيرين بقيم ابتدائية
متغير أ تعيين ١
متغير ب تعيين 4

---* تحقق من قيمة مجموع "أ + ب" باستخدام تعبير شرطي يحتوي على ثلاث حالات:
   - إذا كان الناتج أكبر من 10، اطبع رسالة بذلك.
   - إذا كان الناتج أصغر من 10، اطبع رسالة مناسبة.
   - إذا كان الناتج يساوي 10، اطبع رسالة مساوية.
*---
إذا أ زائد ب أكبر_من ١٠ إذن {
  --- في حال تحقق الشرط: مجموع أ + ب أكبر من 10
إطبع("أ زائد ب أكبر من 10")
} غير_ذلك_إذا أ زائد ب أصغر_من ١٠ إذن {
  --- في حال لم يتحقق الشرط الأول، وتحقق هذا الشرط: المجموع أصغر من 10
إطبع("أ زائد ب أصغر من 10")
} غير_ذلك {
  --- في حال لم يتحقق أي من الشرطين السابقين، أي أن أ + ب = 10
إطبع("أ زائد ب يساوي 10")
}
أنهي

--- تعبير ثلاثي: إذا كانت أ صحيحة، أ، وإلا ب
أ ؟ أ : ب أنهي

--- تعبير ثلاثي: إذا كانت القيمة غير رقمية، أ، وإلا ب
قيمة_غير_رقمية ؟ أ : ب أنهي

--- تعبير ثلاثي: إذا كانت القيمة فارغة، أ، وإلا ب
فارغ ؟ أ : ب أنهي

--- تعبير ثلاثي مركب مع شرط داخل قوس
(أ زائد ب أكبر_من ١٠) ؟ أ : ب أنهي

--- تعبير ثلاثي متداخل مع تعبير ثلاثي آخر
(أ زائد ب أصغر_من ١٠) ؟ (أ ؟ أ : ب) : أ أنهي

--- تعريف متغيرات إضافية لاستخدامها مع nullish
متغير ت تعيين 2
متغير ث تعيين 3
متغير ج تعيين 5

--- تعبير nullish: إذا كانت أ غير nullish، استخدم أ، وإلا ب
أ ؟؟ ب أنهي

--- تعبير nullish: إذا كانت القيمة فارغة، استخدم ب
فارغ ؟؟ ب أنهي

--- تعبير nullish: إذا كانت القيمة غير رقمية، استخدم أ
قيمة_غير_رقمية ؟؟ أ أنهي

--- تعبير nullish متداخل
أ ؟؟ ب ؟؟ ت أنهي
أ ؟؟ ب ؟؟ ت ؟؟ ث أنهي
أ ؟؟ ب ؟؟ ت ؟؟ ث ؟؟ ج أنهي