Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 当uint=0时,for循环已崩溃_Actionscript 3_Flash - Fatal编程技术网

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

Actionscript 3 当uint=0时,for循环已崩溃,actionscript-3,flash,Actionscript 3,Flash,为什么这个循环是无限的,当我尝试在flash中用as3将代码放在底部时 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 . . . . 答案在下面的表格中: uint类提供用于处理表示32位无符号整数的数据类型的方法。因为无符号整数只能是正数,所以它的最

为什么这个循环是无限的,当我尝试在flash中用as3将代码放在底部时

   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
.
.
.
.

答案在下面的表格中:

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


所以这个无符号整数只能是正的,它介于
uint.MIN_值
,即
0
,和
uint.MAX_值
,即
4294967295
。这就是为什么for循环永远不会结束的原因,因为当
i==0
时,它将采用值
4294967295
,该值肯定大于
0
,因此for循环条件始终为真。

您可以在以下列表中找到答案:

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


所以这个无符号整数只能是正的,它介于
uint.MIN_值
,即
0
,和
uint.MAX_值
,即
4294967295
。这就是为什么for循环永远不会结束的原因,因为当
i==0
时,它将采用肯定大于
0
的值
4294967295
,因此for循环条件始终为真。

添加$0.02:AS3中使用
uint
比使用普通
int
要慢,当向后遍历数组时,计数器中确实需要负数。添加$0.02:在AS3中使用
uint
比使用普通
int
慢,并且当向后遍历数组时,计数器中确实需要负数。