一个很容易忽略的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的效率要高。虽然差距不大,但知道下总不会吃亏。

 

 

posted @ 2008-09-28 01:11  六度空间  阅读(441)  评论(4编辑  收藏  举报