تصيح الأخطاء الجزء الأول أهلا بكم من جديد إلى نوليدج سيتي في البرمجة في جافا أنا كليف بروزو، أنا معلمك وفي درس اليوم سنتعرف على تصحيح أخطاء البرنامج إذا كنت تتذكر، فهذا هو البرنامج الذي اختبرناه للتو الذي تضمن بيان التبديل وبيانات if وحتى سحب أو إظهار الشهر التقويمي في هذا البرنامج، قمت بإدراج مجموعة من الأخطاء لم تكن موجودة في المرة الأخيرة التي قمنا فيها بتجميعه دعونا نقوم بتشغيله هذه المرة ونرى ما سيحدث الخطأ الأول الذي أحصل عليه، يشير إلى السطر 17 ونزولا للأسفل، يقول main.java 17 ويخبرني أنني ارتكبت خطأ أنه ليس بيان والبيان الذي يهتم به هو scan.close في هذه الحالة بالذات ما نحتاج إلى فهمه هو أن close هو دالة ويجب أن تنتهي جميع الدوال بأقواس مفتوحة ومغلقة إذن حقيقة أنه ليس بيانًا تعني حقًا أنني بحاجة إلى الدخول بعد كلمة close مباشرة وأقوم بوضع الأقواس المفتوحة والمغلقة الآن، الحيلة لتصحيح أخطاء البرنامج هو إجراء تغيير واحد فقط في كل مرة حتى لو رأيت أشياء خاطئة انتظر حتى يخبرك المترجم أو محول التعليمات البرمجية أنك أخطأت إذا أجريت الكثير من التغييرات قد ينتهي بك الأمر إلى تغيير شيء صحيح وتحويله إلى شيء غير صحيح لذلك نقوم بإجراء تغيير واحد في كل مرة دعونا نعيد التحويل البرمجي يشير الآن إلى السطر 52، وأقوم بالتمرير لأسفل إلى السطر 52 وهي تقول الفرق == الشهر - الشهر + 1 في هذا الخطأ، علينا أن نتذكر أن هناك فرقًا بين علامة التساوي وعلامة التساوي المزدوجة == تختبر العلامة المسماة بعلامة التساوي المزدوجة لمعرفة التساوي == بينما علامة التساوي الفردية تضع قيمة في الجانب الأيسر من المعادلة في هذه الحالة المرة الوحيدة التي استخدم فيها علامة المساواة المزدوجة هو مع عبارة if أو بيان while في كل حالة أخرى أريد استخدام علامة واحدة للتساوي والتي من خلالها سأقوم بأخذ نتيجة هذا الحساب هذا هو yourmonth مطروحًا منه الشهر، بالإضافة إلى واحد yourmonth - (month +1) وأضعه في فرق المتغير والطريقة التي أفعل بها ذلك هي بعلامة تساوي واحدة كما قلنا، تغيير واحد وإعادة تجميع يقول سطر Java 66 إنه هناك خطأ ووصل إلى نهاية الملف أثناء التحليل ماذا يحدث هنا هو أنني أفتقد قوس إغلاق مجعد ويحاول IDE مساعدتنا من خلال وضع هذه الخطوط الرأسية التي تساعدنا في ترتيب هذه الأقواس وإذا تابعت هذا طوال الطريق أستطيع أن أرى أن close هذا مطابق إلى روتين String Args الرئيسي العام public static void main string args انظر في السطر الرابع ولدي مفتوح وليس هناك close مطابق لذلك بينما كان المترجم يمر من خلال والتحقق من جميع التعليمات البرمجية، وصل إلى نهاية الملف ولم يجد قوسًا مجعدًا للإغلاق لذا سأضع واحدة وأعتقد أنني سأنتهي لأنه لم يتبق سوى خطأ واحد، لكنني مخطئ أضعه ولا يزال يقول نفس الشيء حسنًا، هذا شيء مثير للاهتمام لأنني أصلحت هذا الكود للتو وأعطاني نفس الخطأ عندما يحدث ذلك ، عليك العودة والبحث والتحقق للتأكد من أن جميع الأقواس المفتوحة لديها أقواس إغلاق مقابلة سأصعد إلى قمة البرنامج لدي واحد مفتوح، لدي اثنان مفتوحان، السطر الرابع والسطر السادس السطر 23 مفتوح لبيان التبديل وأنا أتبع هذه السطور لأسفل وأرى أنه لا يوجد close لبيان التبديل إذن Java لا تعرف ذلك، ما تعرفه Java هو أن هناك قدرًا غير متساوٍ من أقواس إغلاق وتقول أنني وصلت إلى نهاية الملف ولم أجد قوس النهاية لذا سأضع واحد ومرة أخرى، أعتقد أنني انتهيت أوه، لا، لست كذلك لقد أصلحت هذا الخطأ والآن لدي واحد، اثنان، ثلاثة، أربعة، خمسة، ستة، سبعة ثمانية، تسعة، كل سطر تقريبًا يصبح خطأ وهنا يبدأ الذعر لدي 20 خطأ عندما بينما كان لدي واحد فقط كيف يحدث هذا؟ حسنًا، الكمبيوتر لا يعرف تفاصيل كل سطر حتى ينتهي من خلال البرنامج بأكمله ويتأكد من أن جميع روتينك يتم فتحه وإغلاقه بشكل صحيح لذلك عندما جمعت آخر مرة وأخبرني أن لدي خطأ واحدًا لقد وضعت هذا الخطأ الوحيد، والآن قال كل شيء على ما يرام سأدخل وألقي نظرة على كل سطر على حدة هذا ما يتعين علينا فعله الآن سطري الأول يتحدث معي ويقول السطر الثالث، الفئة العامة الرئيسية public class main الفئة main عامة public يجب التصريح عنها في ملف يسمى main Java حسنًا، هذا مؤشر هنا، جافا الرئيسية main Java هو إشارة إلى ما يجب أن تسمى الملفات وفقا له لكن في حالتي، لدي ملف باسم Main.java بحرف كبير M لذا فهو يخبرني أن حرف M يجب أن يكون كبيرًا لذلك سأضع حرف كبير M كما قلت، على الرغم من علمي بوجود 19 خطأً آخر سأقوم بإعادة التحويل البرمجي لأن تغييرًا واحدًا قد ينتج عنه أخطاء متعددة الآن يعيدني إلى السطر الأول وقال: هناك خطأ، لا يمكن العثور على رمز والمؤشر الصغير هنا الذي يقول، هذا هو المكان الذي تم فيه العبث كان يبحث عن رمز فئة Scanner وفي هذه الحالة بالذات حسنًا، لم أقم بتهجئة Scanner بحرف S كبير الكتابة بالحرف الكبير مهمة أجعل ذلك حرف S كبير، وأعد تجميعه مرة أخرى الآن يخبرني، السطر 15 يخبرني أنه لا يمكنه العثور على الرمز Scanner.nextInt وهو يبحث ولا يوجد شيء اسمه Scanner لقد قمت بتسمية Scanner, scan الخاص بي، وليس scanner لذا فإن الكود الصحيح هو أن نقول Scan.nextInt