C# a++ 与 ++a 的区别
运行环境:Window7 64bit,.NetFramework4.61,C# 6.0; 编者:乌龙哈里 2017-02-21
查资料时看到别人的写法 while(++a<n) 不禁想了下,到底能循环几次。上试验代码:
示例1:
int n = 3;
int a = 0;
while (++a < n)
{
Console.WriteLine(a);
}
Console.WriteLine($"final {a}");
Console.WriteLine("=====");
a = 0;
while (a++ < n)
{
Console.WriteLine(a);
}
Console.WriteLine($"final {a}");
/*输出显示:
1
2
final 3
=====
1
2
3
final 4
*/
再来个更直观的示例2:
int a = 0;
bool b = ++a > 0 ? true : false;
Console.WriteLine($"a=0,++a>0 :{b},final a={a}");
a = 0;
b = a++ > 0 ? true : false;
Console.WriteLine($"a=0,a++>0 :{b},final a={a}");
/*输出显示:
a=0,++a>0 :True,final a=1
a=0,a++>0 :False,final a=1
*/
结论:++a 是先 +1 后把结果放进了 a,再用a去做其他事;而 a++ 则是先用 a 做其他事,然后 a 再来+1。