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。