الرئيسية / جافا / أساسيات في البرمجة بالجافا / 11 مشكلة متكررة في شفرة جافا يواجهها المبتدئون و كيف تتغلب عليها

11 مشكلة متكررة في شفرة جافا يواجهها المبتدئون و كيف تتغلب عليها

كما هو المُبتدئ كان الخبير، من منهم لم يواجه مشكلة في شفرة جافا؟

و كُل البدايات تتشابه، لذا تتشابهُ المشاكل التي يُعاني منها المبتدئون عموماً، هذه المشاكل من المُمكن أن نُسميها مشاكل البدايات.

وكُلما تتطور المبرمج في عمله و علمه قلّت لديه هذه الأخطاء حتى تتلاشى.

هنا أذكُر لك من المشاكل التي تُواجه المُبتدئين في لغة الجافا و كيف يتغلّب عليها.

1. اختلاف اسم الفئة عن إسم الملف

إذا لم تكن من مستخدمي محررات الجافا المتقدمة فلا بد أنك عانيت هذه المشكلة في شفرة الجافا.

يُطلب من متعلمي الجافا المبتدئين في الجامعات و المعاهد عادة إستخدام محرر بدائي مثل notepad حتى يتعودوا على أساسيات الجافا و يحفظوا أساسياتها الضرورية.

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

هذا مثال للمشكلة حيثُ اختلف الإسمان بنقص الحرف r في نهاية إسم الفئة.

مشكلة اختلاف اسم الملف و الفئة في جافا

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

2. نسيان الفاصلة

هذه المشكلة في شفرة الجافا يقعُ فيها المبتدئ و الخبير على حدٍ سواء.

وضعُ الفاصلة في نهاية الجملة في جافا يحدد نهاية الجملة التي سيتم تنفيذها، و نسيانُها من الأخطاء المتكررة.

نسيان الفاصلة العشرية

كيف تتغلب على هذه المشكلة: لا يوجد حل مباشر لحل هذه المشكلة سوى الإهتمام بوضعها عند نهاية الجمل.

3. حلقة تكرارية بلا نهاية

الحلقة التكرارية اللا نهائية تؤدي إلى عمل البرنامج بصورة مستمرة.

بمعنى آخر تعليق البرنامج في نقطة محددة لا يتقدم ولا يتأخر.

هذا الخطأ من الأخطاء المنطقية و التي يصعُب إيجادها في البرامج الكبيرة خاصة.

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

حلقة تكرارية لا منتهية
حلقة تكرارية لا منتهية

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

4. switch بدون break

العبارة switch تُستخدم لإختيار إجراء لمدخل واحد.

ما يحدث في الرد الآلي لدى شركات الإتصالات “للحصول على رصيدك إضغط الرقم 1، لإنهاء المكالمة إضغط الرقم 2” مثالٌ مناسب لإستخدام العبارة switch.

بناءً على المُدخل يتم تنفيذ عدة خطوات، و المُتوقع بنهاية هذه الخطوات الخاصة بالإدخال رقم 1 مثلاً أن لا يتم تنفيذ أي شئ متعلق بالرقم 2 أو 3.

ولكن عند نسيان عبارة break بنهاية الخطوات الخاصة بالرقم 1 سينتقل التنفيذ تلقائياً إلى الخطوات التالية دون إعتبار إلى أي رقم تنتمي هذه الخطوات.

هذا مثالٌ لهذه الحالة

نسيان break في switch
نسيان break في switch

بينما تتوقع الحصول على هذه النتيجة

النتيجة المتوقعة لعبارة switch
النتيجة المتوقعة لعبارة switch

ستجد أنك قد حصلت على هذه النتيجة

النتيجة الفعلية الخاطئة لعبارة switch
النتيجة الفعلية الخاطئة لعبارة switch

كيف تتغلب على هذه المشكلة: إبدأ بإنشاء الهكيل العام لـ switch مع وضع break في كل حالة ثم أدخل المنطق.

5. خطأ في الدالة main

هذا الخطأ في تعريف الدالة main نفسها، و السبب الرئيسي هو قلة التعود على كتابتها بالطريقة الصحيحة.

يحدث الخطأ كثيراً بنسيان الأقواس مثل هذه الحالة

نسيان الأقواس في عبارة main
نسيان الأقواس في عبارة main

أو بنسيان جزء من تعريف الدالة مثل هذه الحالة

نسيان static
نسيان static

طريقة التغلب عليها: عوّد نفسك على كتابتها و احفظها مثل اسمك.

الطريقة الصحيحة لكتابة الدالة main
الطريقة الصحيحة لكتابة الدالة main

6. قوس مفقود

يعتبر القوس المفقود من المشاكل التي تُصاحب كُلّ شفرة برمجية غير منظمة و إن صغُرت.

كما أنها تُصاحب البرمجيات الكبيرة أحياناً، و تقل كُلّما كانت الشفرة المصدرية مُنظمة.

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

الهيكل العام لعبارة if و استخدام التعليق

7. استخدام = للمقارنة بدلاً عن ==

هذه المشكلة في شفرة جافا قد يكون سببُها النسيان أو عدم المعرفة.

للمقارنة بين رقمين من النوع int يتم إستخدام عبارة == بدلاً عن = و التي تُتسخدم لإسناد القيمة.

فبدلاً عن إستخدام المقارنة في عبارة if بهذه الطريقة

الطريقة الخاطئة للمقارنة بين رقمين
الطريقة الخاطئة للمقارنة بين رقمين

يجب كتابتها هكذا

الطريقة الصحيحة للمقارنة بين رقمين
الطريقة الصحيحة للمقارنة بين رقمين

كيف تتغلب على هذه المشكلة: إعلم أن المقارنة تتم بـ == ، لا شيء آخر.

8. مقارنة قيم الكائنات بإستخدام ==

إن استطعت تجاوز النقطة السابقة فيجب أن تتفادى هذه المشكلة أيضاً.

حين تكونُ المقارنة بين قيم الكائنات يقع بعضُ المبتدئين في خطأ مقارنة الكائنات بعبارة ==

مقارنة الكائن بإستخدام ==

كيف تتغلب على هذه المشكلة: تأكد أن كل كائن تتم مقارنته عن طريق الدالة equals.

المقارنة الصحيحة للكائنات
المقارنة الصحيحة لقيم للكائنات

9. نسيان return في نهاية الدالة

مالم تكُن الدالة void أي لا تُرجع شيئاً يجب أن تحتوي في نهايتها على عبارة return.

نسيان return مُشكلة شائعة أيضاً في الشفرات المصدرية لجافا، مثل هذه الحالة.

كيف تتغلب على هذه المشكلة: أكتب هيكل الدالة كاملاً قبل كتابتك لأي إجراءات داخلها.

هيكل الدالة مع عبارة return
هيكل الدالة مع عبارة return

10. كتابة النص في أكثر من سطر

عند كتابة الشفرات المصدرية لجافا بإستخدام محرر نصوص عادي يحاول المبرمج أحياناً الإنتقال إلى السطر التالي بإستخدام مفتاح Enter.

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

فصل عبارة String في سطرين
فصل عبارة String في سطرين

وهذا هو ما لا تتقبله الجافا.

كيف تتغلب على هذه المشكلة: للإنتقال إلى سطر جديد أنهِ الجملة البرمجية ثم أضف ما تبقى من العبارة إلى المتغير السابق.

الفصل الصحيح لعبارة string
الفصل الصحيح لعبارة string

11. كتابة s بحرف صغير بدلاً عن الكبير في String

يستغربُ المبرمج أحياناً من أن تعريف المتغير من النوع String لا يعمل رغم كتابته بطريقة صحيحة!

لا يوجد إختلاف كبير بين الشكل الصغير و الكبير لحرف الـ s، لذا تقع هذه المشكلة.

إختلاف قليل بين s الصغيرة و الكبيرة
إختلاف قليل بين s الصغيرة و الكبيرة

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

عن مصطفى الطيب

مصطفى الطيب
صديقٌ لنُظمِ المعلُومات و عُلومِ الحَاسِب و مُختصٌ بهما، مُحبٌ للعِلمِ و نَشرِه. أُشاركُ معارفي و تَجاربي و خِبراتي في تَدويناتٍ و دوراتٍ من خلال مُدونةِ عُلوم.

5 تعليقات

  1. شكرا على هذا الشرح الجميل و المبسط

  2. جزاك الله خيرا ونرجوا المزيد من شرح للجافا للمبتدئين فى تعلم هذه اللغه

  3. بتمني مذيد من هذا

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *