Tôi đã lập trình Java được vài năm rồi, nhưng tôi mới trở lại trường để lấy bằng chính thức. Tôi khá ngạc nhiên khi biết rằng, trong bài tập cuối cùng của mình, tôi đã mất điểm vì sử dụng một vòng lặp như vòng dưới đây.
do{
//get some input.
//if the input meets my conditions, break;
//Otherwise ask again.
} while(true)
Bây giờ đối với thử nghiệm của tôi, tôi chỉ quét một số đầu vào giao diện điều khiển, nhưng tôi được cho biết rằng loại vòng lặp này không được khuyến khích vì sử dụng break
gần giống với goto
, chúng tôi không làm điều đó.
Tôi hiểu đầy đủ những cạm bẫy của goto
và anh em họ Java của nó break:label
và tôi có ý thức tốt khi không sử dụng chúng. Tôi cũng nhận ra rằng một chương trình hoàn chỉnh hơn sẽ cung cấp một số phương tiện trốn thoát khác, ví dụ như chỉ kết thúc chương trình, nhưng đó không phải là lý do giáo sư của tôi trích dẫn, vì vậy ...
Có chuyện gì với bạn do-while(true)
vậy?
break
có lẽ cũng có ý nghĩa, nhưng thực sự bị hiểu lầm. Có lẽ bạn có thể giáo dục giáo sư của bạn về điều này;) Theo kinh nghiệm của tôi, các giáo sư không biết nhiều về nghề lập trình.
do {} while (true)
là tương đương while(true) {}
và sau này là hình thức thông thường hơn và rõ ràng hơn nhiều.
break
họ, họ nên thử lập trình bằng ngôn ngữ mà không có nó. Nó không mất quá nhiều vòng lặp trước khi bạn muốn nó!