设为首页收藏本站

Scripts 学盟

 找回密码
 加入学盟

QQ登录

只需一步,快速开始

查看: 2303|回复: 0
打印 上一主题 下一主题

for 循环 和 foreach循环 原理 [复制链接]

Rank: 7Rank: 7Rank: 7

1#
俊俊 实名认证  发表于 2011-7-22 14:16:44 |显示全部楼层
本帖最后由 cjqq0218 于 2011-7-22 14:18 编辑

for 你先要给初值,末值和步长
foreach 不需要事先给定初值,末值和步长,他是自动遍历给定的集合体的所有值。
补充:
第一,不能修改的是foreach引用变量,因为它是引用的,对它的修改没有意义也没有作用,它就像一个c/c++指针那样对集合中的元素进行指向引用;我们能通过引用看到它,但是没有能力动它。
第二,in之前的变量是引用变量,但in之后的集合确是实实在在的,所以可以对它操作,像.ADD();REMOVE()等方法可以使用。
第三,foreach引用变量大概是通过地址指向后面的集合(我猜想跟c/c++的指针很像),当修改了集合的元素时,地址可能发生某种改变,所以不跳出循环继续遍历时,就可能出现引用找不到的情况。


关于效率:
对于原来的for语句foreach具有更好的执行效率,foreach的平均花费时间只有for30%。
通过测试结果在for和foreach都可以使用的情况下,我 们推荐使用效率更高的foreach.在测试同时我们附加的发现,用for写入数据时间大约是读取数据时间的10倍左右。


摘自baidu

使用道具 举报

您需要登录后才可以回帖 登录 | 加入学盟

手机版|Scripts 学盟   |

GMT+8, 2024-5-18 19:38 , Processed in 1.060106 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部