Bu fikri stackoverflow.com adresinde aldım.
Aşağıdaki desen yaygındır:
final x = 10;//whatever constant value
for(int i = 0; i < Math.floor(Math.sqrt(x)) + 1; i++) {
//...do something
}
Yapmaya çalıştığım nokta koşullu ifade karmaşık bir şey ve değişmez.
Bunu, döngünün başlangıç bölümünde belirtmek daha doğru olur mu?
final x = 10;//whatever constant value
for(int i = 0, j = Math.floor(Math.sqrt(x)) + 1; i < j; i++) {
//...do something
}
Bu daha açık mı?
Koşullu ifade gibi basit ise ne
final x = 10;//whatever constant value
for(int i = 0, j = n*n; i > j; j++) {
//...do something
}
x
büyüklük içinde büyük, Math.floor(Math.sqrt(x))+1
eşittir Math.floor(Math.sqrt(x))
. :-)
{ x=whatever; for (...) {...} }
veya daha iyisi, ayrı bir işlev olması için yeterli bir işlem olup olmadığına bakın.