Actionscript 3 当uint=0时,for循环已崩溃
为什么这个循环是无限的,当我尝试在flash中用as3将代码放在底部时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位无符号整数的数据类型的方法。因为无符号整数只能是正数,所以它的最
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
慢,并且当向后遍历数组时,计数器中确实需要负数。