我从stackoverflow.com上的这个问题中得到了这个主意
以下是常见的模式:
final x = 10;//whatever constant value
for(int i = 0; i < Math.floor(Math.sqrt(x)) + 1; i++) {
//...do something
}
我要说明的一点是条件语句有些复杂,不会改变。
这样,是否最好在循环的初始化部分中声明它?
final x = 10;//whatever constant value
for(int i = 0, j = Math.floor(Math.sqrt(x)) + 1; i < j; i++) {
//...do something
}
这更清楚吗?
如果条件表达式很简单怎么办
final x = 10;//whatever constant value
for(int i = 0, j = n*n; i > j; j++) {
//...do something
}
x
幅度较大,Math.floor(Math.sqrt(x))+1
则等于Math.floor(Math.sqrt(x))
。:-)
{ x=whatever; for (...) {...} }
或者更好的是,考虑是否有足够的事情需要将它作为一个单独的函数。