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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© SilenceSea 黑马帝   /  2011-11-7 20:46  /  1942 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

foreach和for使用的时候有什么区别呢?

4 个回复

倒序浏览
for 其实是一个循环语句, 按照一定的条件对某个变量进行迭代, 实现循环或枚举每个可能的值。当一个集合对象(包括数据)支持使用索引访问内部的数据时, 用for可以遍历出每个数据(实际上是使用索引循环访问每个数据)。
foreach 则是遍历专用的一个关键字, 要求对象实现了 IEnumerable 接口(即可遍历), 通过访问它的GetEnumerator()返回迭代器, 通过它来逐个遍历数据。 foreach其实是一种语法器, 就是说编译器在编译的时候会将其转换为对应的程序语句,

评分

参与人数 2技术分 +2 黑马币 +2 收起 理由
SilenceSea + 2
李印东老师 + 2 赞一个!

查看全部评分

回复 使用道具 举报
foreach的对象必须实现Iterator 接口,遍历集合所有元素的话用foreach更加简洁,for功能是跟强大些,支持index取元素。

评分

参与人数 2技术分 +2 黑马币 +2 收起 理由
SilenceSea + 2
李印东老师 + 2 赞成。

查看全部评分

回复 使用道具 举报
foreach不是javas中的,是C#中的,它的作用应该和for区别不是太大,java里有我们使用普遍for,和jdk1.5的高级for循环,而标签里有个<c:foreach>我想你不会说的这个吧
回复 使用道具 举报
3L的同学说的已经非常完整了,但是我想补充一点:foreach语句跟Iterator迭代器一样仅能对所遍历的集合等对象遍历,不可以取其进行操作。而for循环可以做到这一点。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马