TC官方合作论坛
标题:
关于TC6.1的数组问题
[打印本页]
作者:
chen71512
时间:
2016-5-29 14:25
标题:
关于TC6.1的数组问题
代码说明:
变量 aa=数组()
aa[0]=1
aa[1]=2
aa["这是特殊"]="特殊"
变量 数量 = 数组大小(aa)
遍历(变量 i = 0; i < 数量; i++)//这样写正常
调试输出(aa[i])
结束
遍历(变量 i = 0; i < 数组大小(aa); i++)//这样写会出现死循环并且数组所有元素都为空
调试输出(aa[i])
结束
求解释?
作者:
言术
时间:
2016-5-29 16:27
你这两个遍历,前三次都是一样的,最主要是看第四次:
第一个退出条件,是在进入遍历前是计算好的确定值,所以当i等于3,条件为3<3,为假,跳出循环
第二个退出条件,是每次遍历后重新计算的,而当i等于3时,调试输出(aa[3]),这个值不存在,但这一步就相当于给aa[3]赋值为null。
此时数组为 array("0"=1,"1"=2,"这是特殊"="特殊","2"=null) ,取数组大小为4
所以退出条件为 3 < 4 ,为真,继续循环,此后为4 < 5 , 5 < 6 , 6 < 7........... 等等
如果你把 aa["这是特殊"]="特殊" 去掉就没事了
你自己下断点,慢慢调试你就明白了
代码:
遍历(变量 i = 0; i < (数量=数组大小(aa)); i++)
调试输出(aa[i])
调试输出(aa)
结束
作者:
chen71512
时间:
2016-5-30 09:52
言术 发表于 2016-5-29 16:27
你这两个遍历,前三次都是一样的,最主要是看第四次:
第一个退出条件,是在进入遍历前是计算好的确定值, ...
确实想不到的是调试输出一个有可能没有的数组下标时,会自动增加一个数组元素.这特性要适当回避下,因为好些时候脚本里的元素个数起到决定性判断作用,谢谢释疑.
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1