当uint = 0时,for循环已经崩溃

时间:2014-12-28 20:19:19

标签: actionscript-3 flash

为什么这个循环是无限的当我尝试使用as3

在flash中底部代码时
   for(var i:uint=10;i>=0;i--)
    {
        //some code
        trace(i);
    }

这是输出;

10
9
8
7
6
5
4
3
2
1
0
4294967295
4294967294
4294967293
.
.
.
.

1 个答案:

答案 0 :(得分:5)

您可以在definition of uint

中找到答案
  

uint类提供了处理表示32位无符号整数的数据类型的方法。因为无符号整数只能是正数,所以它的最大值是int类的两倍。

所以这个无符号整数只能是正数,它在uint.MIN_VALUE之间,0uint.MAX_VALUE之间是4294967295。这就是为什么你的for循环永远不会完成的原因,因为当i == 0时,它将取值4294967295肯定大于0,因此for循环条件始终为真。