黑马程序员技术交流社区
标题:
for循环和foreach遍历区别在哪,使用范围怎么理解
[打印本页]
作者:
赵贺景
时间:
2014-5-6 18:46
标题:
for循环和foreach遍历区别在哪,使用范围怎么理解
本帖最后由 赵贺景 于 2014-5-6 20:45 编辑
for循环和foreach遍历区别在哪,使用范围怎么理解
两个都是循环语句,但是句式不同,使用方法也不同,
在使用上有什么差别,注意事项有哪些?
作者:
追梦无悔
时间:
2014-5-6 19:08
本帖最后由 追梦无悔 于 2014-5-6 19:09 编辑
for和foreach的作用都是遍历。不同的是,能通过foreach遍历的必须直接或间接实现IEnumerable或IEnumerable接口
作者:
8点的太阳
时间:
2014-5-6 19:32
除了楼上所说的for循环能够修改值比较灵活和通用,而foreach循环使用方便但是不能够在循环中修改值有局限性
作者:
小狸
时间:
2014-5-6 19:42
按照我的理解foreach和for都具有遍历的功能
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _for
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("for");
int [] i =new int[]{1,2,3,4,5,6,7,8};
for (int j = 0; j < i.Length; j++) {
Console.Write(i[j]+" ");
}
Console.WriteLine();
Console.WriteLine("foreach");
foreach(int j in i){
Console.Write(j+" ");
}
Console.ReadLine();
}
}
}
复制代码
foreach迭代的是集合中的每一项.当然C#数组也是集合.
但是,foreach (var temp in array) temp的值是只读属性的,也就是说它不能像for那样对遍历对象进行操作例如:
int [] a = new int[] { 1, 2,3,4,5,6 };
foreach (int b in a)
{
b += 1; //error
}
for (int i = 0; i < a.Length; i++)
{
a[i] += 1;
}
复制代码
11.png
(2.9 KB, 下载次数: 79)
下载附件
2014-5-6 19:38 上传
foreach比for好在它的性能优势,效率比for高,并且它并不需要知道数组的长度,范围;
那么要访问数组下标的时候用for,要遍历对象数组时用foreach比较好
作者:
赵贺景
时间:
2014-5-6 19:49
在固定长度或长度不需要计算的时候for循环效率高于foreach.
在不确定长度,或计算长度有性能损耗的时候,用foreach比较方便.
foreach是只读性质的 不能修改内容 而for可以计算 是吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2