これは期待どおりに機能します。
for (var i:uint = 5; i >= 1; i-- )
{
trace(i); // output is from 5~1, as expected
}
これは奇妙な振る舞いです:
for (var i:uint = 5; i >= 0; i-- )
{
trace(i)
}
// output:
5
4
3
2
1
0
4294967295
4294967294
4294967293
...
0未満では、MAX_INTのようなものが表示され、永久にデクリメントされ続けます。なぜこうなった?
編集
unsignedintを使用してC++を使用して同様のコードをテストしたところ、同じ結果が得られました。おそらく、状態はデクリメント後に評価されています。