国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#中的i++和++i的區別

2019-11-17 02:30:02
字體:
來源:轉載
供稿:網友

C#中的i++和++i的區別

我相信寫代碼的人對i++和++i都不陌生,但你完全搞懂這兩種寫法了嗎?下面說明一下他們的區別。簡單地說,i++ 是先用再加,++i 是先加再用。

1             int i = 0;2             int y = 1;3             y = i++;4             Console.WriteLine("y的值為:{0}", y.ToString());5             Console.WriteLine("i的值為:{0}", i.ToString());

上面的代碼運行結果:

下面再看一段代碼:

1             int i = 0;2             Console.WriteLine("先引用,后運算,所以 i 還是{0}", (i++).ToString());3             Console.WriteLine("現在 i 在內存中的值為{0}", i.ToString());4             Console.WriteLine("先運算,后引用,所以 i 的值為{0}", (++i).ToString());5             Console.ReadLine();

這段代碼運行結果:

我們在for循環中經常用到i++,那么在for循環中i++和++i有什么區別呢?繼續看代碼:

1             var count = 0;2             for (int i = 1; i <= 10; i++)3             {4                 count += 1;5             }6             Console.WriteLine("循環次數為:{0}", count.ToString());7             Console.ReadLine();

運行結果:

把for循環中的i++換成++i呢?看代碼:

1             var count = 0;2             for (int i = 1; i <= 10; ++i)3             {4                 count +=1;5             }6             Console.WriteLine("循環次數為:{0}", count.ToString());7             Console.ReadLine();

運行結果:

可見對于for循環的循環次數來說,i++和++i的循環次數是一樣的,但是從性能上來講,二者有無區別呢?繼續看代碼:

 1             Stopwatch sw = Stopwatch.StartNew(); 2             //string count = string.Empty; 3  4             //long ticks; 5             for (int i = 1; i <= 100; i++) 6             { 7                 //count = i.ToString(); 8             } 9             sw.Stop();10             var elapsed = sw.Elapsed;11             //Console.WriteLine("循環次數為:{0}", count.ToString());12             Console.WriteLine("耗時:{0}", elapsed.ToString());13             Console.ReadLine();

運行結果:

把i++換成++i,其他不變,運行結果如下:

for循環100次,循環中不做任何事情,從筆者的電腦上的運行結果上看,i++比++i好,現在把循環次數改為10000000(1000萬)次,結果如何呢?

如果在for循環中加入某些事務邏輯呢?代碼改為:

 1             Stopwatch sw = Stopwatch.StartNew(); 2             string count = string.Empty; 3  4             //long ticks; 5             for (int i = 1; i <= 100; i++) 6             { 7                 count = i.ToString(); 8             } 9             sw.Stop();10             var elapsed = sw.Elapsed;11             Console.WriteLine("循環次數為:{0}", count.ToString());12             Console.WriteLine("耗時:{0}", elapsed.ToString());13             Console.ReadLine();

先測試循環次數為100的結果:

i++如下:

++i如下:

將循環次數改為1000萬次:

i++如下:

++i如下:

從性能上來講,i++和++i差別不大,基本在同一數量級,在for循環中一般用i++即可。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浦城县| 山东省| 高州市| 泰安市| 温州市| 海淀区| 西盟| 安龙县| 吴桥县| 隆德县| 揭东县| 易门县| 左云县| 沂水县| 宁夏| 蒙自县| 嘉义县| 噶尔县| 江北区| 顺义区| 榆林市| 凤凰县| 保定市| 潼南县| 榆树市| 宁乡县| 娱乐| 文成县| 巢湖市| 阳东县| 兰州市| 三台县| 永城市| 凯里市| 莱阳市| 枞阳县| 清涧县| 镇沅| 海城市| 郧西县| 伊通|