一个很容易忽略的i++和++i的问题
在一个循环当中,究竟使用i++效率高呢,还是使用++i的效率高呢?估计很多人都不清楚这个问题。我的答案是:++i高。
最近闲来无事,于是对这个问题进行测试。
先说明下两者的含义:
i++ 先赋值后加
++i 先加后赋值
我们可以进行如下测试,将更清楚:
int n = 0, m = 1;
n = m++;
Console.WriteLine(n + " " +m);
n = ++m;
Console.WriteLine(n + " " + m);
测试结果为:1 2 3 3
OK,我们入正题,测试代码如下:
DateTime tnow = DateTime.Now;
Console.WriteLine(tnow.ToString()+tnow.Millisecond.ToString());
int tag1 = 0 , tag2 = 0;
for (int i=0; i < 10000; i++)
{
tag1++;
}
tnow = DateTime.Now;
Console.WriteLine(tnow.ToString() + tnow.Millisecond.ToString());
for (int i = 0; i < 10000; ++i)
{
tag2++;
}
tnow = DateTime.Now;
Console.WriteLine(tnow.ToString() + tnow.Millisecond.ToString());
Console.WriteLine("第一次循环的次数:"+ tag1 + "第二次循环的次数:" + tag2);
Console.ReadLine();
测试结果很有趣,如下:
从三次的时间对比,可以明显看出,++i的效率要高。虽然差距不大,但知道下总不会吃亏。