1

我可以for在 Objective-C 的不同循环中重复使用相同的变量名吗?例如:

// This doesn't give me an error but I feel like it should:

for(int i = 0; i < 10; i++){
    //do something
}

for (int i = 0; i < 5; i++){    // I'm using "i" again.  Is this allowed?
    //do something else
}

这可以编译并且似乎运行良好,但我只是想确保这是合法的并且是允许的,而不会在我的程序中造成某种复杂性。我对 ObjC 很陌生,但在 Java 中,我通常会从中得到错误。

4

2 回答 2

3

那应该没问题。您显示的代码段中的范围i仅限于每个for循环,因此没有冲突。如果你改为这样做:

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

int i;
for (i = 5; i < 10; i++) {
    //...
}

那么您将遇到问题,因为您i在同一范围内声明了两次。

于 2012-05-14T15:29:37.577 回答
2

这很好。因为您没有在 for 循环之外初始化整数。如果你有两次这样的:

int i;
for (i = 0; ...)

那么你当然会得到一个编译错误,因为你不能在同一个块中定义两个同名的变量。

于 2012-05-14T15:29:13.140 回答