请告诉我什么是代码这两个片段的差异:初始化之前或内部在Java
int i = 0;
for(i; i < test; i++) {...}
和
for(int i = 0; i < test; i++) {...}
有没有初始化的这些方式有什么区别i
- 增量变量?它是否影响任何事物?
请告诉我什么是代码这两个片段的差异:初始化之前或内部在Java
int i = 0;
for(i; i < test; i++) {...}
和
for(int i = 0; i < test; i++) {...}
有没有初始化的这些方式有什么区别i
- 增量变量?它是否影响任何事物?
The second one is idiomatic。第一个不是,因此违反了the principle of least astonishment。
如果您需要在for
循环之前或之后访问i
,请仅使用第二个循环。但是,在这段代码中,我没有看到任何暗示是这样的情况。
区别在于变量i
的范围。
在第一个中,i
在for循环之外是可见的,而在第二个中是不可见的。
万一你可以在for循环范围外使用i变量。 万一你不能这样做。只能用于循环范围。
在这两种情况下,变量都被定义一次(没有明显的性能或内存问题)。差异在于范围和表示。第一种情况下i
将在for
声明的范围之外。
例如,如果您想查找某个元素的特定索引(很难确实存在这种方法的更好替代方法),或者您想迭代直到满足特定条件,然后,知道你的循环停在哪个索引处。
感谢...我有一个代码实际上像 “为(INT I = 0; I <试验;我++){的System.out.println第(i +” “);}”,所以变量i应该已经外面所定义的for循环。 – byank
@byank在这种情况下''我'被认为是* for'for'循环。然而''''在'for'循环的结束括号之后会超出范围:'for(int i = 0; i
Edd