Saya mendapat ide ini dari pertanyaan ini di stackoverflow.com
Pola berikut umum:
final x = 10;//whatever constant value
for(int i = 0; i < Math.floor(Math.sqrt(x)) + 1; i++) {
//...do something
}
Poin yang saya coba sampaikan adalah pernyataan kondisional adalah sesuatu yang rumit dan tidak berubah.
Apakah lebih baik untuk mendeklarasikannya di bagian inisialisasi loop, seperti itu?
final x = 10;//whatever constant value
for(int i = 0, j = Math.floor(Math.sqrt(x)) + 1; i < j; i++) {
//...do something
}
Apakah ini lebih jelas?
Bagaimana jika ekspresi kondisional sederhana seperti
final x = 10;//whatever constant value
for(int i = 0, j = n*n; i > j; j++) {
//...do something
}
x
besarnya besar, Math.floor(Math.sqrt(x))+1
sama dengan Math.floor(Math.sqrt(x))
. :-)
{ x=whatever; for (...) {...} }
atau, lebih baik lagi, pertimbangkan apakah ada cukup banyak hal yang perlu dilakukan sebagai fungsi terpisah.