2012-12-17 117 views
0

请告诉我什么是代码这两个片段的差异:初始化之前或内部在Java

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

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

有没有初始化的这些方式有什么区别i - 增量变量?它是否影响任何事物?

回答

5

区别在于变量i的范围。

在第一个中,i在for循环之外是可见的,而在第二个中是不可见的。

+0

感谢...我有一个代码实际上像 “为(INT I = 0; I <试验;我++){的System.out.println第(i +” “);}”,所以变量i应该已经外面所定义的for循环。 – byank

+0

@byank在这种情况下''我'被认为是* for'for'循环。然而''''在'for'循环的结束括号之后会超出范围:'for(int i = 0; i Edd

1

万一你可以在for循环范围外使用i变量。 万一你不能这样做。只能用于循环范围。

1

在这两种情况下,变量都被定义一次(没有明显的性能或内存问题)。差异在于范围和表示。第一种情况下i将在for声明的范围之外。

例如,如果您想查找某个元素的特定索引(很难确实存在这种方法的更好替代方法),或者您想迭代直到满足特定条件,然后,知道你的循环停在哪个索引处。

相关问题