亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這兩種代碼哪種更好?

這兩種代碼哪種更好?

慕慕森 2018-12-07 04:31:35
在用到循環的時候時常會出現這兩代碼。 第一種在 循環里面定義變量 如果 for(int i=0;i<100;i++) {   int j=i+10; ????? .................. } ? 另外一種是 int j=0; for(int i=0;i<100;i++) { ?  j=i+10; ????? ......................... } 這兩種代碼中,第一種 j 是在循環中不停的被聲明。 第二種方法中 j 只被聲明一次。 這兩種代碼中感覺上是第二種更好。但原因為是什么? 不明白。 不停的在 循環中聲名變量有什么壞處?
查看完整描述

12 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

第一種看起來不亂,避免在其他地方被調用而修改內容,而且在for循環結束時j就會被銷毀,而第二種方法要等到整個方法結束時才被銷毀,這樣就節省了內存。另外,不管在哪里聲明字段,第一次編譯的時候都會先把所有的字段聲明存放在程序的開頭。

查看完整回答
反對 回復 2019-01-21
?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

同意一樓的觀點,基本上已經回答了樓主的問題了
查看完整回答
反對 回復 2019-01-21
?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

@貪心貍貓:for循環結束j不會被銷毀
查看完整回答
反對 回復 2019-01-21
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

剛認真看了一下,功能不確定,沒有可比性,并且值類型和引用類型效果是不一樣的。

查看完整回答
反對 回復 2019-01-21
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

第二種好。

第一種情況是:變量會不斷地被聲明,分配空間,銷毀空間。

第二種情況是:變量只聲明一次,但是生命周期很長,只有在變量聲明部分的“}”之后才會自動被釋放??梢詢灮氖?,在循環結束后,手動銷毀這個變量。

但是第二種方法消耗的內存和CPU時間會少些。

查看完整回答
反對 回復 2019-01-21
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

你說的是C#的話,沒有區別,會被編譯優化

你說的是JS的話,恐怕在外部聲明比較好

查看完整回答
反對 回復 2019-01-21
?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

第二種方式更好!

第一種方式,變量 j 會循環聲明 100 次,分配內存空間,然后再銷毀,浪費資源。

第二種方式,變量 j 僅聲明一次,循環結束后就會釋放。

查看完整回答
反對 回復 2019-01-21
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

同一樓觀點,不過對于現在的服務器來說,這點區別CPU還是可以承擔的,并且還是C#寫的。

查看完整回答
反對 回復 2019-01-21
  • 12 回答
  • 0 關注
  • 429 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號