声明变量的优点是什么

时间:2016-05-25 22:29:21

标签: java for-loop

我在Android支持库中看到以下代码:

for (int i = 0, z = getChildCount(); i < z; i++)

使用z = getChildCount而不仅仅是i < getChildCount()有什么好处?

2 个答案:

答案 0 :(得分:8)

声明多个内联变量是一种有问题的样式,但是赋值会在循环开始时计算一次计数并保存该值。如果操作很昂贵,它可以防止在每次迭代时花费时间计算它。

答案 1 :(得分:4)

在for循环中,它可以分为3个部分:

for(initialization ; terminating condition ; increment){

}

在for循环中,初始化只运行一次。但是每次迭代都会检查终止条件。因此,如果您将for循环写为:

for (int i = 0; i<count(); i++){
}

count()方法将在每次迭代时运行。

将其写成如下所示,确保count()只会被调用一次,其原因当然是减少不必要的count()调用。

for (int i = 0, z = count(); i < z; i++)

上述内容也等同于将其编写为(除了z现在不在循环范围内):

int z = count();
for (int i = 0; i < z; i++)