تدريب عملي
التدريب العملي 27: عدد أيام الشهر (switch)
من مذكرة العملي. اقرأ المسألة والخوارزمية، ثم اكتب البرنامج ونفّذه.
من الدرس 6. العبارات الشرطية: if و switch · كل التدريبات
١نص المسألة
اكتب برنامج بلغة الجافا يطلب من المستخدم أن يدخل رقم الشهر بالميلادي ثم يطبع له عدد الأيام في ذلك الشهر:
| رقم الشهر | عدد الأيام | رقم الشهر | عدد الأيام |
|---|---|---|---|
| 1 | 31 | 7 | 31 |
| 2 | 28 | 8 | 31 |
| 3 | 31 | 9 | 30 |
| 4 | 30 | 10 | 31 |
| 5 | 31 | 11 | 30 |
| 6 | 30 | 12 | 31 |
قم بحل هذا المثال باستخدام جملة switch مع كتابة الجمل البرمجية مرة واحدة للحالات المتشابهة. يمكن تجميع الشهور كالتالي:
| أرقام الشهور | عدد الأيام |
|---|---|
| 1، 3، 5، 7، 8، 10، 12 | 31 |
| 4، 6، 9، 11 | 30 |
| 2 | 28 |
إذا أدخل المستخدم رقمًا لا يساوي أحد أرقام الشهور، اطبع له: الرقم المدخل غير صحيح.
٢الخوارزمية
خوارزمية مقترحة.
- ابدأ
- اقرأ رقم الشهر وخزنه في a
- حسب قيمة a (جملة switch):
- في حالة 1, 3, 5, 7, 8, 10, 12 : اطبع 31 days
- في حالة 4, 6, 9, 11 : اطبع 30 days
- في حالة 2 : اطبع 28 days
- غير ذلك (default) : اطبع «الرقم المدخل غير صحيح»
- اطبع «مع السلامة»
- توقف
٣خريطة التدفق
٤خطوات التطبيق
- أنشئ مشروعًا جديدًا في NetBeans: File ← New Project ← Java with Ant ← Java Application، باسم lab27.
- اكتب الكود داخل الدالة main، ثم شغّله بالزر Run أو F6.
- اكتب المدخلات في نافذة Output أسفل الشاشة ثم اضغط Enter. وفي الموقع اكتبها في خانة STDIN عند الضغط على «▶ شغّل هنا».
٥المخرجات المطلوبة
نفّذ برنامجك عدة مرات بمدخلات مختلفة، ويجب أن تظهر المخرجات التالية:
التشغيل 1: عند إدخال 5
run:
ادخل رقم الشهر
5
31 days
مع السلامة
BUILD SUCCESSFUL (total time: 0 seconds)
التشغيل 2: عند إدخال 3
run:
ادخل رقم الشهر
3
31 days
مع السلامة
BUILD SUCCESSFUL (total time: 0 seconds)
التشغيل 3: عند إدخال 4
run:
ادخل رقم الشهر
4
30 days
مع السلامة
BUILD SUCCESSFUL (total time: 0 seconds)
التشغيل 4: عند إدخال 2
run:
ادخل رقم الشهر
2
28 days
مع السلامة
BUILD SUCCESSFUL (total time: 0 seconds)
التشغيل 5: عند إدخال 14
run:
ادخل رقم الشهر
14
الرقم المدخل غير صحيح
مع السلامة
BUILD SUCCESSFUL (total time: 0 seconds)
٦الحل المقترح
حاول بنفسك أولًا، ثم قارن حلّك بالحل التالي:
👁 اعرض الحل المقترح
import java.util.Scanner;public class Lab27 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("ادخل رقم الشهر"); int a = input.nextInt(); switch(a){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println("31 days"); break; case 4: case 6: case 9: case 11: System.out.println("30 days"); break; case 2: System.out.println("28 days"); break; default: System.out.println("الرقم المدخل غير صحيح"); } System.out.println("مع السلامة"); }}