我应该在C#中使用哪种递增方法++;我或我++;?
例如我应该在C#中使用哪种递增方法++;我或我++;?,c#,loops,increment,C#,Loops,Increment,例如 for(int i=0;i
for(int i=0;i<10;++i)
...
vs
对于(inti=0;i<10;i++)
有人告诉我,我会更有效率。其他语言(如JavaScript)中是否存在差异,或者这是一个更基本的规则?i++和++i之间的差异是表达式的值 值i++是增量之前i的值。++i的值是增量后i的值 然而,在你的循环中,这并没有任何区别
for (int i = 0; i < 10; ++i)
...
在某些语言中使用++i的优点是它不临时创建不必要的(参见例如C++对C++的彻底解释)。
<代码>(int i=0;i++i
的效率并不比C#中的i++
更高。如果不在同一表达式中分配结果,则会为这两种情况生成相同的代码
当然,如果您将结果分配给同一表达式中的某个对象,那么生成的代码将有所不同——但在这种情况下,语义是不同的,您无法选择使用哪种形式的增量
所以你可以用你最喜欢的方法。在这种情况下,
i++
与++i
是一样的。它们之间的主要区别是增量后与增量前的区别自从Scott Meyers写了“有效的C++”以来,已经被问了无数次,并且讨论得异常。来吧。
int i = 0;
00000088 xor edx,edx
0000008a mov dword ptr [ebp-40h],edx
i++;
0000008d inc dword ptr [ebp-40h]
++i;
00000090 inc dword ptr [ebp-40h]
for(int i=0;i<10;i++)
{
//some jobs
}
int i=0;
while(i<10)
{
//some jobs
i++;
}
for(int i=0;i<10;i++)
{
//some jobs
}
int i=0;
while(i<10)
{
//some jobs
++i;
}