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 شروع میکند. دو چاپ اول اعداد ذخیرهشده را تأیید میکنند. چاپ سوم نتیجهٔ تفریق را نشان میدهد، نه جمع. برنامه ترجمه شد و اجرا شد — این اشتباه منطقی است، نه نقطهویرگول گمشده.
یکبار کنار صفحه حساب کنید: ده منهای دو برابر هشت است. با سطر آخر جور است، پس باگ مقدار متغیر غلط نیست؛ باگ عملگری است که برای جمع انتخاب کردید. وقتی ورودیهای چاپشده درست به نظر میرسند و نتیجه غلط است، عبارتی را بجویید که نتیجه را ساخته.
اگر هنوز از فایل equals مقدار true / false میبینید، به فایل تدریس 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 برود. هر بار یک درستکردن روشن ترجیح دهید تا هر اجرای تازه یک تغییر را آموزش دهد.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود