
一:语句及表示方法
for语句:
for(初始表达式;条件表达式;增量表达式)
{
循环体
}
foreach语句:
foreach(数据类型 变量 in 数组或集合)
{
循环体
}
理解
1.从程序逻辑上理解,foreach是通过指针偏移实现的(最初在-1位置,每循环一次,指针就便宜一个单位),而for循环是通过当前索引相对零索引的偏移量(通过首地址和地址偏移量)计算实际访问地址实现的;
2.以上我们也可以看出,for更具有判断逻辑性,foreach只是循环访问。当然你可以你再循环体引入业务逻辑。
从以上总结我们看出,两者各有优点,其实我觉得各自的优点,要在不同的程序中我们去考量一些要素,同时我们具体问题具体分析。那我们具体看下一下代码:我们以100万个数据相加累和,作进一步测试:
代码如下:
结果:

四.从问题出发,更要从实际出发
我们对for语句和foreach语句进行统计,实际此程序问题很多:
问题0:其中变量的定义对测试影响大不大。
问题1:DateTime.Now时间的精确性影响大不大。
问题2:for语句和foreach语句的位置顺序问题会不会影响。
问题3:相加累和方法测试,对for语句和foreach语句测试是否公平。
问题4:for语句和foreach语句,装载数据方式,调用数据顺序具有很大的研究价值。
问题5:for语句和foreach语句运行机制原理,对于两者的PK是否公平。
以上几点经过长久的测试,影响比较大的。当我们试图去探究一些问题,请大家更注重他们的运行机制,当然也要更注重他们在我们实际程序中,不能一直去研究性能,而忽略他们存在机制。