Đầu tiên, nếu có lỗi cú pháp, bạn chỉ cần đọc kỹ các lỗi biên dịch. Thường thì một dòng được tô sáng là một lỗi, nhưng thực ra đó là dòng trước đó có lỗi.
Xin lưu ý rằng, đối với một sinh viên giới thiệu, có thể có một số tạo tác chỉnh sửa sẽ ngăn chương trình được biên dịch mà không thể nhìn thấy. Ví dụ, tôi đã từng thấy một sinh viên (không phải là của tôi) đã sử dụng phím cách thay vì trả về: Mã của anh ta trông bình thường trên một trình soạn thảo được gói sau 80 cột (sinh viên rất kiên nhẫn) và mã này thậm chí còn hoạt động cho đến khi anh ta thêm vào một //
bình luận kiểu "", trong đó nhận xét tất cả phần còn lại của chương trình. Tương tự, nếu bạn sao chép các mẫu mã từ một trang web, thường có các ký tự không thể in được cũng được sao chép (tùy thuộc vào cách trang web định dạng mã). Khi nghi ngờ, hãy nhập lại vào một dòng mà không cần sao chép và dán. [Thật là tuyệt vời, nhưng tôi đã thấy nó xảy ra gần đây hơn rất nhiều.]
Đối với các lỗi biên dịch khó chịu, bạn có thể phải phát triển chương trình, bằng cách tạo một tệp mới và nhập tất cả các mã khi bạn đi cùng. Đảm bảo biên dịch sau mỗi bước chính trước khi chuyển sang bước tiếp theo.
OK, vậy nếu không có lỗi cú pháp thì sao? Sau đó là thời gian để bước qua mã! Bạn có thể sử dụng trình gỡ lỗi cho việc này, nhưng thực hiện các cuộc gọi đến printf
trong toàn bộ mã cũng có hiệu quả cao. Ví dụ: nếu có một for
vòng lặp, hãy thêm vào một câu lệnh in cho bộ đếm vòng lặp. Trong trường hợp các for
vòng lặp lồng nhau , bạn có thể thấy rằng biến sai đang được tăng lên.
Ưu điểm của việc sử dụng printf
s là khả năng "nén" theo thời gian / không gian những gì bạn đang xem. Khi bạn bước qua với một trình sửa lỗi, bạn cũng thấy rất nhiều trạng thái không liên quan và nó có thể tẻ nhạt hơn. Ngoài ra, không nhìn thấy lịch sử của những gì đã được in lên bàn điều khiển, bạn có thể bỏ lỡ một số mẫu. Vấn đề ở đây là trình gỡ lỗi và bản in là các kỹ thuật bổ sung và không phải lúc nào cũng tốt hơn các trình gỡ lỗi khác.
Cuối cùng, chỉ cần hỏi bạn của bạn những gì đang xảy ra! Thay vì nhìn vào nó và nói "uh" hãy hỏi họ những gì họ đang làm: "bây giờ phải n
làm gì?" Bằng cách bắt đầu hộp thoại, cuối cùng họ có thể trả lời câu hỏi của chính họ hoặc bạn có thể nhận ra cách họ khái niệm hóa chương trình có một lỗ hổng, điều này có thể đưa bạn đến một giải pháp.
Như đã nhận xét ở nơi khác, tất cả điều này trở nên tốt hơn với kinh nghiệm. Mặc dù tôi đã lập trình được 20 năm, nhưng mãi đến 5 năm qua tôi mới làm việc với các sinh viên mà tôi đã giúp họ khắc phục lỗi tốt hơn.