تفاعل فعّال: برمجة قائمة تفاعلية باستخدام Java
في الرمز البرمجي الذي قدمته، يظهر أنك استخدمت بنية do-while
لتكرار عرض القائمة والتفاعل مع المستخدم. عند رمي الاستثناء، يتم طباعة رسالة خطأ وتنفيذ عبارة return
، مما يؤدي إلى الخروج من الدالة runMenu()
.
لكن هذا التصميم يفسر لماذا يبدو أن البرنامج يتوقف بمجرد حدوث الاستثناء. من الواضح أنك تريد استمرار تشغيل البرنامج بعد رمي الاستثناء وعرض رسالة الخطأ.
لتحقيق هذا الهدف، يمكنك استخدام تحكم منفصل، مثل متغير بولياني، للتحقق مما إذا كان يجب الاستمرار في التكرار أم لا. يمكننا تعديل الرمز لتضمين هذا التحكم، كما يلي:
javapublic void runMenu() {
int x = 1;
Scanner Option = new Scanner(System.in);
int Choice = 0;
boolean continueMenu = true; // تحكم في استمرار تشغيل القائمة
do {
try {
System.out.println("Choose Option");
System.out.println("");
System.out.println("1: Create Account");
System.out.println("2: Check Account");
System.out.println("3: Take Action");
System.out.println("4: Exit");
System.out.println("Please choose");
Choice = Option.nextInt();
switch (Choice) {
case 1:
CreateAccount();
break;
case 2:
selectAccount();
break;
case 3:
Menu();
int choice = UserInput();
performAction(choice);
break;
case 4:
System.out.println("Thanks for using the application");
continueMenu = false; // تعيين القيمة لتوقف التكرار
break;
default:
System.out.println("Invalid Entry");
throw new Exception();
}
} catch (Exception e) {
System.err.println("Enter Correct Input");
Option.next(); // تجاوز الإدخال غير الصحيح
}
} while (continueMenu);
}
بتعيين continueMenu
إلى false
عندما يختار المستخدم الخروج، يمكنك التحكم في توقف التكرار وبالتالي العودة إلى القائمة دون الحاجة إلى استخدام return
الذي ينهي الدالة.
المزيد من المعلومات
في الرمز البرمجي الذي قدمته، يتم استخدام لغة البرمجة Java لإنشاء برنامج يتفاعل مع المستخدم من خلال قائمة. البرنامج يتيح للمستخدم إجراء إجراءات مثل إنشاء حساب، فحص حساب، أو القيام بإجراء معين.
دعنا نلقي نظرة على الأجزاء الرئيسية للرمز:
- تعريف دالة
runMenu()
التي تدير التفاعل مع المستخدم وتعرض قائمة الخيارات. - استخدام بنية
do-while
لتكرار عملية عرض القائمة وتحديد الخيار. - استخدام كائن من فئة
Scanner
لاستخدام وظائف الإدخال من المستخدم. - استخدام تصريح
try-catch
للتعامل مع استثناءات الإدخال غير الصحيحة. - الاستخدام الفعّال للمفتاح
break
لإنهاء الحلقات عند تحقيق شرط معين.
التحكم في الاستمرارية من خلال متغير بولياني continueMenu
يسمح بالتحكم في تكرار البرنامج. في حالة اختيار المستخدم الخروج (case 4
)، يتم تعيين continueMenu
إلى false
، مما يؤدي إلى انتهاء الحلقة.
تم أيضًا إضافة Option.next()
داخل الكائن catch
لتجاوز أي إدخال غير صحيح بعد طباعة رسالة الخطأ، مما يسمح بمواصلة تنفيذ البرنامج بدون توقف.
هذا الرمز يتيح للمستخدم التفاعل مع البرنامج بسهولة ويتيح لك التعامل مع إدخالات غير صحيحة بطريقة فعّالة.