البرمجة

استخدام قيم الإدخال في Java

مشكلتك هنا تتمحور حول كيفية استخدام قيم الإدخال من حالتين في الحالة الثالثة دون الحاجة إلى إعادة تعريف المتغيرات. الخطأ الذي تتلقاه “المتغير المحلي قد لا يتم تهيئته” يحدث لأن Java تتوقع أن تكون قيمة المتغير معروفة قبل استخدامها، وفي هذه الحالة، في الحالة الثالثة، لم تُهيّئ قيمة للمتغيرين “adult” و”child” بعد.

لحل هذه المشكلة، يمكنك استخدام متغيرات خارجية لتخزين قيم الإدخال من الحالتين الأولى والثانية، ثم استخدامها في الحالة الثالثة. فيما يلي كيف يمكنك تعديل الشيفرة لتحقيق ذلك:

java
Scanner in = new Scanner(System.in); int menuSel; int adult = 0; // تعريف متغير الكبار خارج الحلقة لتكون متاحة في جميع الحالات int child = 0; // تعريف متغير الأطفال خارج الحلقة لتكون متاحة في جميع الحالات do { System.out.println("1. Adult Tickets"); System.out.println("2. Child Tickets"); System.out.println("3. Finalise Order"); System.out.println("4. Cancel Order"); System.out.println("Please select an option from the list:"); menuSel = in.nextInt(); switch (menuSel) { case 1: System.out.println("Number of adult tickets:"); adult = in.nextInt(); // تعيين قيمة متغير الكبار double adultTotal = (adult * 15.5); System.out.println("Total price for " + adult + " tickets is $" + adultTotal); break; case 2: System.out.println("Number of child tickets:"); child = in.nextInt(); // تعيين قيمة متغير الأطفال double childTotal = (child * 5.75); System.out.println("Total price for " + child + " tickets is $" + childTotal); break; case 3: double finalAdultTotal = (adult * 15.5); // استخدام القيم التي تم تخزينها في الحالتين السابقتين double finalChildTotal = (child * 5.75); System.out.println("Your order of " + adult + " adult ticket(s) and " + child + " child ticket(s) amounts to $" + (finalChildTotal + finalAdultTotal)); break; } } while (menuSel != 4);

بتلك الطريقة، يتم تعريف المتغيرين “adult” و”child” خارج الحلقة، مما يجعلهما متاحين للاستخدام في جميع الحالات. وعند استخدامهما في الحالة الثالثة، ستكون قيمهما قد تم تحديدها بالفعل في الحالات السابقة، وبالتالي لن يظهر الخطأ المتعلق بعدم تهيئة المتغيرات المحلية.

المزيد من المعلومات

بالطبع، سنكمل المقال الخاص بك لمساعدتك في فهم كيفية استخدام قيم الإدخال من حالتين في الحالة الثالثة دون الحاجة إلى إعادة تعريف المتغيرات.

الاستفادة من قيم الإدخال في الحالة الثالثة:

في الشيفرة التي قدمتها، تم تحديد المتغيرين “adult” و”child” داخل الحالتين الأولى والثانية. ومن أجل استخدام قيمهما في الحالة الثالثة، تم تعريفهما كمتغيرات محلية داخل حالة الفرز (switch). وهذا ما تسبب في ظهور خطأ عدم تهيئة المتغيرات المحلية.

لتجاوز هذا، قمت بتعريف المتغيرين “adult” و”child” خارج الحلقة، مما جعلهما متاحين في نطاق أوسع، وبالتالي يمكن الوصول إليهما من أي حالة داخل الحلقة. وعند الحاجة إلى استخدامهما في الحالة الثالثة، يمكن ذلك بسهولة دون الحاجة إلى إعادة تعريفهما.

الاستنتاج:

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

باختصار، الاستفادة من تعريف المتغيرات خارج الحلقة واستخدامها في الحالات المختلفة يُعد أحد الأساليب الفعالة لتجنب أخطاء عدم تهيئة المتغيرات وتحسين نظافة الشيفرة وقابليتها للصيانة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر