0

誰かが何かを説明できるのだろうか、私は 10 から 0 まで逆にカウントしたいループをセットアップしました:

for(NSUInteger index = 10; index >= 0; index--) {
    NSLog(@"INDEX: %ld", (long)index);
}

このループは永遠に実行され、0 で停止することはありませんが、負の数になり続けます。これに気づいたとき、コードを次のように変更しました。

for(NSInteger index = 10; index >= 0; index--) {
    NSLog(@"INDEX: %ld", (long)index);
}

上記は正常に動作しますが、生成された数値はすべて符号なし整数であるため、最初の例が機能しないのはなぜですか?

4

2 に答える 2

1

NSUInteger は常に >= 0 であることに注意してください。結果として、ループ条件は常に true になります。

于 2014-04-11T14:36:51.887 に答える