البرمجة

تعلم برمجة Java: حساب معدل استهلاك الطاقة

الكود الذي قدمته يهدف إلى استخدام تعبيرات “else if” لتعيين قيمة لمتغير معين بناءً على اختيار المستخدم. ولكن هناك بعض المشكلات في الكود الحالي.

أولاً وقبل كل شيء، يجب علينا فهم كيفية عمل المتغيرات في Java. في الكود الحالي، تم تعريف المتغير activityFactor داخل كل قسم “else if” على حدة، مما يعني أن هذه المتغيرات محدودة بنطاق كل قسم. وبمجرد الانتهاء من كل قسم، يتم حذف هذه المتغيرات. وعند محاولة الوصول إليها خارج نطاق القسم الذي تم تعريفها فيه، ستتلقى رسالة خطأ “cannot find symbol”.

لحل هذه المشكلة، يجب تعريف المتغير activityFactor خارج جميع الشروط، في أعلى الوظيفة main(). هذا سيتيح لك الوصول إليه في أي مكان داخل الوظيفة main() بدون مشاكل.

ثانياً، هناك خطأ في الطريقة التي تستخدم فيها رموز التشغيل المنطقي “&&”، يجب أن تكون “&&” بدلاً من ذلك لتعمل بشكل صحيح في Java.

لتحسين الكود، يمكنك أيضًا استخدام switch-case بدلاً من مجموعة كبيرة من تعابير “else if”، حيث يمكن أن يجعل الكود أكثر قراءة وفهماً.

إليك الكود المعدل بناءً على ملاحظاتي:

java
import java.util.Scanner; public class TDEE { public static void main(String[] args) { Scanner in = new Scanner(System.in); double tdee = 0.0; double activityFactor = 0.0; // تعريف المتغير خارج شروط if-else System.out.print("Please enter your name: "); String name = in.next(); System.out.print("Please enter your BMR: "); double bmr = in.nextDouble(); System.out.print("Please enter your Gender (M/F): "); String gender = in.next(); System.out.println(); // providing menu items System.out.println("Select your activity level: "); System.out.println("[0] Resting (Sleeping. Reclining)"); System.out.println("[1] Sedentary (Minimal Movement)"); System.out.println("[2] Light (Sitting, Standing)"); System.out.println("[3] Moderate (Light Manual Labor, Dancing, Riding Bike)"); System.out.println("[4] Very Active (Team Sports, Hard Manual Labor)"); System.out.println("[5] Extremely Active (Full-time Athlete, Heavy Manual Labor)"); System.out.println(); // accept user choice with a Scanner class method System.out.print("Enter the number corresponding to your activty level(0,1,2,3,4, or 5): "); String choice = in.next(); System.out.println(); // استخدم switch-case لتعيين قيمة activityFactor بناء على اختيار المستخدم switch (choice.toLowerCase()) { case "0": activityFactor = 1.0; break; case "1": activityFactor = 1.3; break; case "2": activityFactor = "M".equals(gender) ? 1.6 : 1.5; break; case "3": activityFactor = "M".equals(gender) ? 1.7 : 1.6; break; case "4": activityFactor = "M".equals(gender) ? 2.1 : 1.9; break; case "5": activityFactor = "M".equals(gender) ? 2.4 : 2.2; break; default: System.out.println("You did not choose a valid menu option."); return; // إنهاء التنفيذ بعد طباعة الرسالة } tdee = bmr * activityFactor; System.out.println(); System.out.println("Name: " + name + " Gender: " + gender); System.out.println("BMR: " + bmr + " Activity Factor: " + activityFactor); System.out.println("TDEE: " + tdee); } }

بعد التعديلات، يجب أن يعمل الكود بشكل صحيح ويتمكن من قبول اختيارات المستخدم وحساب النتائج بناءً عليها. إذا كان لديك أي أسئلة أخرى أو تحتاج إلى مساعدة إضافية، فلا تتردد في طرحها!

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

بعد إجراء التعديلات اللازمة على الكود وتحسينه، يمكننا الآن استكمال المقال بمزيد من التفاصيل والشروحات حول كيفية عمل البرنامج وكيفية تنفيذه بنجاح.

عند تشغيل البرنامج، سيُطلب من المستخدم إدخال بياناته الشخصية مثل الاسم، ومعدل معدل الأيض الأساسي (BMR)، والجنس. بعد ذلك، سيُعرض للمستخدم قائمة بمستويات النشاط المختلفة التي يمكنه اختيار واحدة منها.

عندما يُدخل المستخدم رقمًا مقابل المستوى المناسب لنشاطه، سيتم استخدام هيكل التحكم switch-case لتعيين قيمة معامل النشاط (activityFactor) استنادًا إلى اختياره. إذا كان الرقم يتطابق مع أحد الخيارات المتاحة، فإن قيمة activityFactor ستتغير وفقًا للقاعدة المحددة. وإذا لم يكن الرقم متوافقًا مع أي من الخيارات، سيتم طباعة رسالة تفيد بأن الخيار الذي تم اختياره غير صالح.

بعد تعيين قيمة activityFactor، سيتم استخدام هذا المعامل في حساب إجمالي معدل الاستهلاك اليومي للطاقة (TDEE)، الذي يتم ببساطة عن طريق ضرب معدل الأيض الأساسي بمعامل النشاط. وأخيرًا، سيتم طباعة جميع بيانات المستخدم بما في ذلك الاسم، الجنس، معدل BMR، معامل النشاط، وإجمالي معدل الاستهلاك اليومي للطاقة.

هذا البرنامج يوفر نظرة سريعة وبسيطة عن كيفية استخدام الجافا لإنشاء برامج تفاعلية تتفاعل مع المدخلات المستخدم. كما يظهر البرنامج كيف يمكن استخدام هياكل التحكم الشرطية مثل if-else و switch-case لاتخاذ قرارات مختلفة استنادًا إلى قيم المتغيرات.

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

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

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

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

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

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