1

forObjective-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同じスコープで2回宣言しているため、問題が発生します。

于 2012-05-14T15:29:37.577 に答える
2

これはまったく問題ありません。for ループの外で整数を初期化しないためです。これが2回あった場合:

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

同じブロックで同じ名前の 2 つの変数を定義することはできないため、もちろんコンパイル エラーが発生します。

于 2012-05-14T15:29:13.140 に答える