الدرس 3 من 10
الجمل الشرطية
- 13 دقيقة
- 6 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
if و switch والعامل الثلاثي
الشرح
if تنفّذ كتلتها إن صحّ شرطها، وelse if تعرض شرطًا آخر إن لم يصحّ ما قبله، وelse لما بقي. تُفحص الفروع بالترتيب ويُنفَّذ أول فرع صحيح وحده، فابدأ بالحدّ الأعلى. وتجمع الشروط بـ && (و) و|| (أو)، وتنفيها بـ !. والشرط في C# قيمة bool صريحة: if (score) خطأ ترجمة، بخلاف JavaScript وPython.
وswitch تقارن قيمة واحدة بحالات ثابتة، وكل case تنتهي بـ break أو return، لأن C# يمنع الانزلاق من حالة فيها كود إلى التي تليها. أما الحالات المتراصّة بلا كود بينها فتشترك في كتلة واحدة: case 'W': case 'w':. وdefault لكل ما لم يُذكر.
والعامل الثلاثي cond ? a : b يختار بين قيمتين في تعبير واحد: int price = isMember ? 80 : 100;. يناسب الاختيار القصير بين قيمتين، أما المنطق الطويل فمكانه if.
المطلوب
أكمل Grade(score) بسلسلة if: "A" من 90 فأكثر، و"B" من 80، و"C" من 70، و"D" من 60، وإلا "F"، و"?" لدرجة خارج المدى من 0 إلى 100. وأكمل Direction(key) بـ switch على مفاتيح الحركة: W تُرجع "فوق"، وS "تحت"، وA "يسار"، وD "يمين"، بالحرف الكبير أو الصغير، وأي مفتاح آخر "ثابت". وShieldDamage(damage, hasShield) تُرجع بالعامل الثلاثي نصف الضرر إن كان مع اللاعب درع، وإلا الضرر كاملًا.
معايير التصحيح
6 معايير- Grade: من 90 فأكثر A، و 89 B
- Grade: C و D و F عند حدودها
- Grade تُرجع ? لدرجة خارج 0 إلى 100
- Direction: W و S و A و D
- Direction تقبل الحرف الصغير، وغير ذلك «ثابت»
- ShieldDamage تنصّف الضرر مع الدرع وحده