黑马程序员技术交流社区

标题: for 和 foreach 的区别? [打印本页]

作者: 李波    时间: 2011-12-13 09:55
标题: for 和 foreach 的区别?
for 和 foreach 的区别

该贴已经同步到 李波的微博
作者: 余飞    时间: 2011-12-13 10:07
for 循环重复执行一个语句或语句块,直到指定的表达式计算为 false 值。for 循环对于迭代数组和顺序处理非常方便。
foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用; 能使用foreach的集合必须实现IEnumerable接口。
对于集合的遍历, foreach比for简洁。当然,如果只遍历集合的一部分,foreach爱莫能助了。迭代变量的读写性方面 对于for,迭代变量是可读可写的,foreach是只读的。
作者: 周文军    时间: 2011-12-13 10:10
1.for循环时候需要满足它的三个条件,而foreach不需要它自动判断集合中的所有值
2.foreach只是for一个封装,它是从内部调用for.
3.从线程方面foreach比较安全一点.
4.for比foreach执行效率方面比较好,而写入数据的时候foreach比for效率好!
作者: 董伟    时间: 2011-12-13 11:03
个人理解,foreach主要是针对集合类数组遍历的方法,比较效率和安全但是功能只限于此。
而for是源程序的循环语句,是基于源代码逻辑层次开发的方式,通俗的来讲就是foreach将遍历的
算法封装了起来,是遍历集合的方法而已,而实现此方法的源程序就要依靠for循环来实现了。
作者: 刘波    时间: 2011-12-13 14:59
区别:
for 循环 需要先要给初值,判断末值和步长
foreach 不需要事先给定初值,末值和步长,他是自动遍历给定的集合体的所有值

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2