Ten pomysł pochodzi od tego pytania na stackoverflow.com
Powszechny jest następujący wzór:
final x = 10;//whatever constant value
for(int i = 0; i < Math.floor(Math.sqrt(x)) + 1; i++) {
//...do something
}
Chcę, aby stwierdzenie warunkowe było czymś skomplikowanym i nie zmienia się.
Czy lepiej jest zadeklarować go w sekcji inicjalizacji pętli jako takiej?
final x = 10;//whatever constant value
for(int i = 0, j = Math.floor(Math.sqrt(x)) + 1; i < j; i++) {
//...do something
}
Czy to jest bardziej jasne?
Co jeśli wyrażenie warunkowe jest proste, takie jak
final x = 10;//whatever constant value
for(int i = 0, j = n*n; i > j; j++) {
//...do something
}
x
jest duży, Math.floor(Math.sqrt(x))+1
jest równy Math.floor(Math.sqrt(x))
. :-)
{ x=whatever; for (...) {...} }
Lub, jeszcze lepiej, zastanów się, czy wystarczająco dużo dzieje się w tym, że musi to być osobna funkcja.