黑马程序员技术交流社区
标题:
for与foreach的区别
[打印本页]
作者:
酱悠先生
时间:
2014-4-12 16:41
标题:
for与foreach的区别
本帖最后由 黑马蔡红微 于 2014-4-22 09:47 编辑
for与foreach的区别
作者:
程序爱好者
时间:
2014-4-12 16:57
一般地:for 可以代替 foreach,但效率上讲后者高些,特别是集合对象
当遍历对象本身的元素需要改变时,不能用foreach,可以用for,while等
作者:
伪善者。
时间:
2014-4-12 17:22
foreach的效率一般来说是比for效率要高点
不过如果需要对执行循环的对象的元素进行操作
还是用for
作者:
鲤鱼
时间:
2014-4-12 17:53
http://wangyali90516.blog.163.com/blog/static/117205101201111283428514/
http://zhidao.baidu.com/link?url=KR8flZP7ofoEozyKnkb3kpRmlG1zgsnabzFqb4cAsX3SPUrUItRAvyT-TzvuIMRnCX2nluAWIRQbmi_V5fdkNq
http://bbs.csdn.net/topics/240005019
作者:
黒■色
时间:
2014-4-12 18:26
知道循环次数的必用for循环
元素都需要访问,用foreach
作者:
茹化肖
时间:
2014-4-12 23:24
foreach 循环不能对item进行写操作
作者:
SunshineGirl
时间:
2014-4-14 13:30
别人给你回答了,你要及时设成提问结束,这样版主地能帮你加分呢
作者:
袁晓俊
时间:
2014-4-15 21:31
for和foreach的用法区别for可以不逐个遍历,比如每隔一个遍历一个,也可以从前向后遍历,从后向前,但是foreach不能从后向前遍历,只能从前向后,并且foreach只能逐个遍历。在foreach中不能向迭代变量赋值。
说明:
foreach 对象是集合。
集合的定义下边有。
像数组、List等都是集合。具体的去MSDN上查询。上边讲的很全面。
下列示例按照元素的顺序打印出一个二维数组中的各个元素的值:
using System;
class Test
{
static void Main() {
double[,] values = {
{1.2, 2.3, 3.4, 4.5},
{5.6, 6.7, 7.8, 8.9}
};
foreach (double elementValue in values)
Console.Write("{0} ", elementValue);
Console.WriteLine();
}
}
和for循环的区别:
for循环油条件判断,可以限制执行条件。foreach没有。对集合对象的遍历,foreach更常用。
for和foreach的区别
一般地:for 可以代替 foreach,但效率上讲后者高些,特别是集合对象
当遍历对象本身的元素需要改变时,不能用foreach,可以用for,while等
如:
*/
ArrayList arr = new ArrayList();
arr.Add(1);arr.Add(2);arr.Add(3);
foreach(int i in arr)
{
if(i == 2) arr.Remove(i);//错误
}
for(int i=0; i<arr.count; i++)
{
if(arr == 2) arr.RemoveAt(i);//正确
}
=======================================================
如果能用foreach 就别用for,因为foreach用起来蛮好蛮简单的
假如有个集合里面的{1,2,3,4,5,6,7,8,9}
用foreach就是先声明一个相应的变量把集合里面的每个元素一个一个的赋给这个变量来做一些处理,你不用知道他执行了多少次.
for 就不用就了.
foreach用来简单,但没for功能强大,有时候还比较麻烦,比如你想循环一定次数或循环到一定条件就行了,还不如for呢
如:(还要一个变量k做标记)
public class MSILMethods
{
static void Main()
{
int[] arr=new int []{1,2,3,4,5,6,5};
int k = 0;
foreach (int i in arr)
{
k++;
if (k == 3) break;
Console.WriteLine(i);
}
}
}
一句话,看情况而定!
============================================
1、foreach常用在数组遍历上
2、用foreach的对象需要实现枚举接口,for就不用了;
3、foreach一般用来读的,For一般用来操作
4、foreach一次处理一个对象,for可以同时处理多个
5、for通常用于已知次数的循环;比如:循环输出10次Hello World
foreach通常用于遍历集合;比如:遍历List
====================================================================
如果可以用for遍历的,一般来说for语句效率高,但是前提是for语句内部的索引器的实现
向来效率是在于“某某”的实现方式,如果是间接寻址,效率自然没的说
foreach只能算一种简写而已,实际内容是
while (枚举器.Next())
对象 o = 枚举器.Current;
这算是语句的简写,其实根本不算循环语句,是一种方法的调用而以,与间接寻址,效率根本没法比的
与很多索引器相比,一般还是会快一些的,因为很多集合中使用的结构是类似链表,要查个“某某”需要遍历很多次
作者:
朝花夕拾_黑马
时间:
2014-4-16 11:26
我感觉,for和foreach都是循环吗,for可以清楚的知道每次循环的下标,foreach就不行了
作者:
丁涧泉
时间:
2014-4-17 21:54
我觉得不从性能的角度考虑,仅看参数,for支持线性参数,foreach支持非线性,离散型的参数,老师你怎么看?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2