请告诉我这两个代码片段有什么区别:
int i = 0;
for(i; i < test; i++) {...}
和
for(int i = 0; i < test; i++) {...}
i
这些初始化-increment 变量的方法之间有什么区别吗?它会影响什么吗?
区别在于变量的作用域i
。
在第一个中,i
在 for 循环之外可见,而在第二个中,则不是。
如果您可以在 for 循环范围之外使用 i 变量。万一你不能这样做。只能在 for 循环范围内使用。
在这两种情况下,变量都被定义一次(没有明显的性能或内存问题)。不同之处在于范围和代表性。在第一种情况下i
将可用的for
声明范围之外。
第一种情况很有用,例如,如果您想找到一个元素的特定索引(确实存在这种方法的更好替代方案),或者如果您想迭代直到满足某个条件,然后知道哪个您的循环是否停止在索引处。