switch
مثل جملة if/else، تتيح لك جملة switch تغيير مسار تنفيذ البرنامج عبر تنفيذ الكود بشكل شرطي.
الفرق أن جملة switch لا يمكنها إلا مقارنة قيمة تعبير من نوع أولي أو من نوع سلسلة نصية بقيم ثابتة معرّفة مسبقًا.
هناك بعض الكلمات المفتاحية المفيدة عند استخدام جملة switch.
switch: تتيح لك هذه الكلمة المفتاحية الإعلان عن بنية جملة switch.
ويأتي بعدها التعبير أو المتغير الذي سيغيّر النتيجة.case: ستستخدم هذه الكلمة المفتاحية للإعلان عن الاحتمالات المختلفة للنتيجة.break: الكلمة المفتاحية break مفيدة جدًا لإيقاف تنفيذ جملة switch عند نهاية المسار المطلوب.
وإذا نسيتها، فسيستمر البرنامج وقد يؤدي ذلك إلى نتائج غير متوقعة.default: كما يوحي اسمها، استخدمها كنتيجة افتراضية عندما لا تطابق أي حالة أخرى نتيجة تعبيرك.في أبسط صورها، تختبر جملة switch تعبيرًا أوليًا أو نصيًا وتتخذ قرارًا بناءً على قيمته.
على سبيل المثال:
String direction = getDirection();
switch (direction) {
case "left":
goLeft();
break;
case "right":
goRight();
break;
default:
// otherwise
markTime();
break;
}
أنت تطوّر نظامًا يساعد العاملين على موقع نادٍ لكرة القدم في إعداد تقارير عن المباريات. تصل البيانات من مصادر مختلفة وتُوجَّه إلى مجرى واحد بعد تنظيفها.
الفريق لا يلعب إلا بتشكيلة 4-3-3، ولم يوافق قط على تغيير قواعد عام 1965 الذي يسمح بالتبديلات، فضلًا عن توسيع قائمة اللاعبين.
أوصاف اللاعبين كما يلي:
1 -> "goalie"
2 -> "left back"
3 & 4 "center back"
5 -> "right back"
6, 7, & 8 -> "midfielder"
9 -> "left wing"
10 -> "striker"
11 -> "right wing"
نفّذ الطريقة الساكنة FootballMatchReports.onField() لإخراج وصف اللاعب بناءً على رقم قميصه.
FootballMatchReports.onField(10);
// => "striker"
عدّل الطريقة FootballMatchReports.onField() لتُرجع 'invalid' عندما يُعالَج رقم قميص خارج النطاق 1-11.
FootballMatchReports.onField(13);
// => "invalid"
سجّل في Exercism لتتعلّم وتتقن Java عبر 26 مفهومًا158 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.