indexと呼ぶプロパティがあります。arrayと呼ぶ可変配列があります。このコードがインデックスの範囲外の例外をスローすることにショックを受けましたか?
if(index >= [array count]) return;
for(self.item = [array objectAtIndex:index]; index < [array count]; self.item = [array objectAtIndex:index]) {
index++;
//do stuffs
}
ただし、このバリアントは機能します。
if(index >= [array count]) return;
while(index < [array count];) {
self.item = [array objectAtIndex:index];
index++;
//do stuffs
}
私はループが次のように動作することを期待しています:
for(initialization instructions; condition; next iteration instruction) {...}
私は次のシーケンスを期待しています:
- 初期化命令が実行されます
- forループでコードを実行する
- 条件がfalse/0を返す場合は中断します。それ以外の場合は、次の反復命令を実行します。次に、2に進みます。
これは、forループが次の反復コードを実行する前に必ずしも条件をチェックしないことを示しています(C / C ++の場合のように)。ですから、forループの演算の順序について複数の考え方があるのかどうか知りたいです。そうでない場合、これは私が対処すべきより複雑な問題があることを私に教えてくれます。
ありがとう。