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

本帖最后由 幸福的彼岸 于 2014-1-15 14:53 编辑

foreach和for循环有哪些区别呀?什么情况下能用foreach循环?

评分

参与人数 1技术分 +1 收起 理由
卖火柴 + 1

查看全部评分

6 个回复

倒序浏览
foreach 就是步长为1的for的一个特殊实现,类似于数据库中的游标机制,只能够向前,不能够往后,用foreach也只能够遍历对象,如果要改变对象,需要手动的添加一条索引语句 i++

能用foreach遍历访问的对象需要实现 IEnumerable接口或声明 GetEnumerator 方法的类型。
在对数组,集合等进行遍历输出的时候 foreach比较好,

评分

参与人数 1技术分 +1 收起 理由
卖火柴 + 1

查看全部评分

回复 使用道具 举报
for 你先要给初值,末值和步长

foreach 不需要事先给定初值,末值和步长,他是自动遍历给定的集合体的所有值
回复 使用道具 举报
foreach循环次数是由lines里面的元素个数决定的,foreach语句只能依次获取直到末尾,for语句可以自己选择循环多少次。

评分

参与人数 1技术分 +1 收起 理由
卖火柴 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 沈可 于 2014-1-15 14:47 编辑

for 你先要给初值,末值和步长foreach 不需要事先给定初值,末值和步长,他是自动遍历给定的集合体的所有值  
string[] a=new string[]{"a","b"};
for(i=0;i<a.length;i++)
{
      Response.write(a.ToString()) ;
}
foreach(string b in a)
{
      Response.write b ;
}
foreach遍历需要实现IEnumerable接口或声明GetEnumerator方法的类型

评分

参与人数 1技术分 +1 收起 理由
卖火柴 + 1

查看全部评分

回复 使用道具 举报
for 你先要给初值,末值和步长
foreach 不需要事先给定初值,末值和步长,他是自动遍历给定的集合体的所有值
如下例子:
string[] a=new string[]{"a","b"}
for(i=0;i<a.length;i++)
{
Response.write(a[i].ToString())
}
foreach(string b in a)
{
Response.write b
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马