TC官方合作论坛

 找回密码
 立即注册
查看: 1108|回复: 2

[BUG反馈] 关于TC6.1的数组问题

[复制链接]
发表于 2016-5-29 14:25:28 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
代码说明:
    变量 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:03 | 显示全部楼层
你这两个遍历,前三次都是一样的,最主要是看第四次:
第一个退出条件,是在进入遍历前是计算好的确定值,所以当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)
    结束
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-30 09:52:19 | 显示全部楼层
言术 发表于 2016-5-29 16:27
你这两个遍历,前三次都是一样的,最主要是看第四次:
第一个退出条件,是在进入遍历前是计算好的确定值, ...

确实想不到的是调试输出一个有可能没有的数组下标时,会自动增加一个数组元素.这特性要适当回避下,因为好些时候脚本里的元素个数起到决定性判断作用,谢谢释疑.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-19 22:51 , Processed in 0.033211 second(s), 22 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表