A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李波 黑马帝   /  2011-12-13 09:55  /  2500 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

for 和 foreach 的区别

该贴已经同步到 李波的微博

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

4 个回复

倒序浏览
余飞 黑马帝 2011-12-13 10:07:55
沙发
for 循环重复执行一个语句或语句块,直到指定的表达式计算为 false 值。for 循环对于迭代数组和顺序处理非常方便。
foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用; 能使用foreach的集合必须实现IEnumerable接口。
对于集合的遍历, foreach比for简洁。当然,如果只遍历集合的一部分,foreach爱莫能助了。迭代变量的读写性方面 对于for,迭代变量是可读可写的,foreach是只读的。

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
1.for循环时候需要满足它的三个条件,而foreach不需要它自动判断集合中的所有值
2.foreach只是for一个封装,它是从内部调用for.
3.从线程方面foreach比较安全一点.
4.for比foreach执行效率方面比较好,而写入数据的时候foreach比for效率好!

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
董伟 黑马帝 2011-12-13 11:03:42
板凳
个人理解,foreach主要是针对集合类数组遍历的方法,比较效率和安全但是功能只限于此。
而for是源程序的循环语句,是基于源代码逻辑层次开发的方式,通俗的来讲就是foreach将遍历的
算法封装了起来,是遍历集合的方法而已,而实现此方法的源程序就要依靠for循环来实现了。

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
刘波 黑马帝 2011-12-13 14:59:05
报纸
区别:
for 循环 需要先要给初值,判断末值和步长
foreach 不需要事先给定初值,末值和步长,他是自动遍历给定的集合体的所有值

输出数组时foreach循环的执行效率比较高,也比较方便

评分

参与人数 1技术分 +1 收起 理由
李荣壮 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马