在循环内部还是在循环外部声明变量会更好吗?

问题描述:

可能重复:
Difference between declaring variables before or in loop?在循环内部还是在循环外部声明变量会更好吗?

考虑下面的两个代码:

Object i; 
for(int i=0;i<10;i++){ 
    i = new Object(); 
} 

OR

for(int i=0;i<10;i++){ 
    Object i = new Object(); 
} 

WH上面两个代码的性能和缓冲区溢出效果更好。

+0

我不明白这个问题。除非有一些Object的初始化代码包含一些副作用,否则两者基本上都是no-op。 – missingfaktor 2012-02-03 16:35:02

+0

@missingfaktor推测''我'会被用于某种方式。这只是为了说明变量的范围。 – Yuck 2012-02-03 16:35:58

我喜欢尽可能限制变量的范围。第一个选项将变量作用于整个包含函数,而后者将其限制在循环中。因此,我更喜欢后者,除非在循环完成后显式需要访问该变量。