Tôi có ý tưởng này từ câu hỏi này trên stackoverflow.com
Các mẫu sau là phổ biến:
final x = 10;//whatever constant value
for(int i = 0; i < Math.floor(Math.sqrt(x)) + 1; i++) {
//...do something
}
Điểm tôi đang cố gắng đưa ra là tuyên bố có điều kiện là một cái gì đó phức tạp và không thay đổi.
Là tốt hơn để khai báo nó trong phần khởi tạo của vòng lặp, như vậy?
final x = 10;//whatever constant value
for(int i = 0, j = Math.floor(Math.sqrt(x)) + 1; i < j; i++) {
//...do something
}
Điều này rõ ràng hơn?
Nếu biểu thức điều kiện đơn giản như
final x = 10;//whatever constant value
for(int i = 0, j = n*n; i > j; j++) {
//...do something
}
x
lớn về độ lớn, Math.floor(Math.sqrt(x))+1
bằng Math.floor(Math.sqrt(x))
. :-)
{ x=whatever; for (...) {...} }
hoặc tốt hơn, hãy xem xét liệu có đủ xảy ra rằng nó cần phải là một chức năng riêng biệt hay không.