Hôm nay, một người nào đó đã tham dự tôi sử dụng sai từ khóa return
trong Java. Tôi đã viết một vòng lặp đơn giản for
để xác thực điều gì đó nằm trong một mảng. Giả array
là một mảng có độ dài n này là mã của tôi:trả lại cho vòng lặp hoặc vòng lặp ngoài
for(int i=0; i<array.length; ++i){
if(array[i]==valueToFind) return true;
}
return false;
Bây giờ ai đó nói với tôi rằng đây không phải là chương trình rất tốt vì tôi sử dụng câu lệnh return
bên trong một vòng lặp và điều này sẽ gây ra thu gom rác thải bị trục trặc. Do đó mã tốt hơn sẽ là:
int i = 0;
while(i<array.length && array[i] != valueToFind) ++i;
return i != array.length;
Vấn đề là tôi không thể tìm ra lý do tại sao vòng lặp đầu tiên không phải là một thực hành tốt. Ai đó có thể cho tôi một sự thôi thúc không?
Chính xác thì người đó đã đưa ra lý do gì cho người đầu tiên không ổn? Messes với GC? – Poindexter
Nếu GC có trục trặc, đó là vấn đề của JVM, không phải của chương trình ... Mã của bạn hoàn toàn hợp lệ. –
"điều này sẽ khiến bộ sưu tập rác bị trục trặc": Bạn có thể xây dựng được không? – assylias