debugging في Java
اعثر على ناتج خاطئ بطباعة القيم التي لديك بالفعل، ثم أصلح السطر السيئ. في Yard.java اكتب int x = 10; وint y = 2;. اطبع x وy. احسب عمدًا int sum = x - y; واطبع sum. ترجم بـ javac Yard.java وشغّل java Yard. يجب أن تُظهر الشاشة القيمتين ثم 8. عرض ثانٍ يغيّر العامل إلى + حتى يطبع sum قيمة 12. اترك Javadoc للصفحة التالية — هذا الدرس قراءة الشاشة لاصطياد خطأ منطقي.
اطبع القيم حول جمع خاطئ
صفحة equals قارنت نص السلسلة. هذه الصفحة تصطاد سطر حساب سيئ. افتح Yard.java. أبقِ اسم الفئة العامة Yard. احذف عروض equals / == المتبقية إن دفنت قصة debug، وملفات horn المتبقية من Machine، وعروض المسار، وأي Scanner للوحة المفاتيح. لا ينتظر البرنامج الكتابة. لا تحتاج سطر import.
داخل Yard.main ضع الأرقام واطبعها قبل أن تثق بالجمع:
int x = 10;
int y = 2;
System.out.println("x=" + x);
System.out.println("y=" + y);
ثم أبقِ عمدًا سطرًا خاطئًا للعرض الأول:
int sum = x - y;
System.out.println(sum);
طباعات x وy تثبت المدخلات. طباعة 8 تثبت أن العامل خاطئ للجمع.
public class Yard {
public static void main(String[] args) {
int x = 10;
int y = 2;
System.out.println("x=" + x);
System.out.println("y=" + y);
int sum = x - y;
System.out.println(sum);
}
}
من المجلد الذي يحوي Yard.java شغّل javac Yard.java. عندما تطابق الأقواس والأقواس المعقوفة والفواصل المنقوطة، لا يكتب javac سطرًا من عنده. ثم شغّل java Yard — وليس java Yard.java. أزل لاحقة .java من أمر التشغيل. أبقِ فئة عامة واحدة في الملف حتى يطابق الاسم Yard.
تُظهر الشاشة x=10، ثم y=2، ثم 8. امشِ التشغيل مرة. تبدأ Java من Yard.main. الطباعتان الأوليان تؤكدان الأرقام المخزّنة. الطباعة الثالثة تُظهر ناتج الطرح، لا الجمع. البرنامج ترجم وشغّل — هذا خطأ منطقي، لا فاصلة منقوطة ناقصة.
احسب مرة على الورق بجانب الشاشة: عشرة ناقص اثنين تساوي ثمانية. هذا يطابق السطر الأخير، لذا الباگ ليس قيمة متغير خاطئة؛ الباگ هو العامل الذي اخترته للجمع. عندما تبدو المدخلات المطبوعة صحيحة والناتج خاطئًا، ابحث عن التعبير الذي بنى الناتج.
إن ما زلت ترى true / false من ملف equals، انتقل إلى ملف تدريس debugging وشغّل java Yard مجددًا. إن غيّرت العامل بلا طباعة x وy، فأنت تخمّن في الظلام. أبقِ طباعات القيم حتى تطابق الشاشة ما تتوقعه من المدخلات. أبقِ التسميات المؤقتة أثناء الصيد؛ يمكنك تنظيفها بعد إثبات الإصلاح.
قل القاعدة بصوت عالٍ وأنت تراقب الشاشة: اطبع الحقائق، اقرأ الناتج الخاطئ، ثم غيّر السطر الذي سبّبه. لا تخترع كتلة تعليق Javadoc كإصلاح في هذه الصفحة. Javadoc ينتظر الدرس التالي.
أصلح العامل وشغّل مجددًا
البرنامج الثاني يبقي نفس طباعات x وy. سطر الجمع يستخدم + بدل -. يجب أن تُظهر الطباعة الأخيرة 12.
public class Yard {
public static void main(String[] args) {
int x = 10;
int y = 2;
System.out.println("x=" + x);
System.out.println("y=" + y);
int sum = x + y;
System.out.println(sum);
}
}
ترجم بـ javac Yard.java، ثم شغّل java Yard. تُظهر الشاشة x=10، ثم y=2، ثم 12. المدخلات لم تتغير. العامل تغيّر. هذه حلقة debug لهذا الشكل المبتدئ: انظر القيم، اكتشف العملية السيئة، أصلحها، ترجم مجددًا، شغّل مجددًا.
اقرأ سطر الجمع مرة أخرى: int sum = x + y;. أبقِ طباعات التسمية حتى يظهر خطأ لاحق المدخلات أيضًا. عندما يطابق الرقم الأخير 10 + 2، سطر المنطق مُصلح لهذا العرض. إن كان ملفا التدريس مفتوحين، قارنهما جنبًا إلى جنب: الفرق العمدي الوحيد يجب أن يكون - مقابل + على سطر الجمع.
إن بقيت عروض equals قريبة، احتفظ بها كتاريخ. لهذا الدرس شغّل ملف تدريس debugging حتى تُظهر الشاشة أرقامًا، لا boolean للسلاسل. إن اشتكى javac من فئات عامة مكررة، أبقِ Yard فقط public.
قائمة تحقق قصيرة لـ debug
الجدول هو الخريطة القصيرة لهذه الصفحة. أولًا تنظر. ثم تطبع. ثم تغيّر سطرًا واضحًا واحدًا وتتحقق. تجنّب التخمين بلا شاشة. لا تحذف كل الطباعات قبل أن تعرف أن الإصلاح نجح.
📊 Beginner debug steps on Yard
| Step | What you do |
|---|---|
| 1 | Run java Yard and read every printed line |
| 2 | Add println for the values you distrust |
| 3 | Fix the bad operator or condition, then compile and run again |
مقارنة مع فحوصات equals
في صفحة equals، أجابت equals و== عن المحتوى مقابل الهوية للسلاسل. في هذه الصفحة تجيب println عما هي أرقامك حقًا عندما يبدو الناتج خاطئًا. ما زلت تترجم Yard.java وتشغّل java Yard. العادات الجديدة هي طباعات قيم مُسمّاة، وقراءة ناتج خاطئ كدليل، وإعادة التشغيل بعد إصلاح سطر واحد.
debugging هنا ليس قائمة خاصة. إنه خرج عادي يستخدم كمصباح على متغيراتك. عندما يُظهر المصباح مدخلات جيدة وناتجًا سيئًا، فالتعبير الذي بنى الناتج هو المشتبه به.
إن كان ملف a.equals(b) ما زال مفتوحًا، سترى true وfalse. انتقل إلى ملف debugging حتى يطبع main قيم x وy وsum. أبقِ عروض Javadoc خارج هذه الصفحة. أبقِ إدخال لوحة المفاتيح خارج هذه الصفحة.
قبل Javadoc
يمكنك طباعة x وy، وإبقاء باگ الطرح، ورؤية 8 بعد التسميات. يمكنك تغيير العامل إلى الجمع ورؤية 12. ترجم Yard.java وشغّل java Yard لكل عرض تحتفظ به بدوره. الشاشة أخبرتك أين فشل المنطق. الصفحة التالية هي Javadoc، حيث توثّق الطرائق بتعليقات خاصة للقرّاء والأدوات.
أبقِ العرض الخاطئ لشاشة غلط واضحة. أبقِ العرض المُصلح لخطوة تحقق واضحة. أبقِ ملفات Javadoc خارج هذه الصفحة. هذه العادات الثلاث نقطة تفتيش قبل أن تتقدم. عندما تطابق الطباعات المُسمّاة مع جمع مُصحَّح 10 + 2، أدّى debugging عمله لهذا الدرس وأنت جاهز للموضوع التالي عن Javadoc.
مرّة أخيرة على المجلد: Yard عام واحد، طباعات قيم حول الجمع، بلا انتظار لوحة مفاتيح، بلا إجبار على تعليقات توثيق. شغّل javac Yard.java وjava Yard مرة أخرى على العرض المفتوح. إن ما زالت الشاشة تُظهر المدخلات والناتج الذي تتوقعه، فحلقة debug متينة ويمكن للدورة الانتقال إلى Javadoc في الصفحة التالية. فضّل إصلاحًا واضحًا واحدًا في كل مرة حتى يعلّم كل تشغيل جديد تغييرًا واحدًا.
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى