在对数据进行循环操作的时候,组长说 for(int i=N;i>0;i--) 与 for(int i=0;i<N;i++)这两种写法是有区别的。
在写i--的时候 效率要比 i++的效率高。
总感觉挺有意思的。一个是加法,一个是减法。怎么效率还不一样?
做一个例子来看看吧:
测试程序:
private void button2_Click(object sender, EventArgs e)
{
for (int j = 0; j < 100000; j++)
{
//计算 i++的所用的时间
TimeSpan startTime = new TimeSpan(DateTime.Now.Ticks);
for (int i = 0; i < 10000; i++)
{
var v1 = i.ToString();
}
TimeSpan endTime = new TimeSpan(DateTime.Now.Ticks);
TimeSpan ts = endTime.Subtract(startTime).Duration();
//计算i--所用的时间
TimeSpan startTime2 = new TimeSpan(DateTime.Now.Ticks);
for (int i = 10000; i > 0; i--)
{
var v2 = i.ToString();
}
TimeSpan endTime2 = new TimeSpan(DateTime.Now.Ticks);
TimeSpan ts2 = endTime2.Subtract(startTime2).Duration();
//如果i++的时间 比 i-- 用的时间大 则top+1 反之bottom+1
if (ts > ts2)
{
top += 1;
}
else
{
bottom += 1;
}
}
//输出两种方式时间长 出现的次数
label1.Text = top.ToString();
label2.Text = bottom.ToString();
}
测试结果:
通过上面的结果来看,i++的效率好像比i--的效率要高啊?请大神来解答。