Ich habe diese Idee aus dieser Frage auf stackoverflow.com
Das folgende Muster ist üblich:
final x = 10;//whatever constant value
for(int i = 0; i < Math.floor(Math.sqrt(x)) + 1; i++) {
//...do something
}
Der Punkt, den ich versuche, ist, dass die bedingte Aussage etwas Kompliziertes ist und sich nicht ändert.
Ist es besser, es im Initialisierungsabschnitt der Schleife als solches zu deklarieren?
final x = 10;//whatever constant value
for(int i = 0, j = Math.floor(Math.sqrt(x)) + 1; i < j; i++) {
//...do something
}
Ist das klarer?
Was ist, wenn der bedingte Ausdruck einfach ist wie
final x = 10;//whatever constant value
for(int i = 0, j = n*n; i > j; j++) {
//...do something
}
x
in der Größe groß ist, Math.floor(Math.sqrt(x))+1
ist gleich Math.floor(Math.sqrt(x))
. :-)
{ x=whatever; for (...) {...} }
.