2012-05-14 135 views
-7

簡單的問題: 什麼是最好的,方法1或方法2?表現:While循環

是方法2更快/更好:

List<int> data = Enumerable.Range(0, 10000000).ToList(); 
int j = 0; 

// Method 1 
while (j < data.Count) 
{ 
    // do something 
    j++; 
} 

j = 0; 

// Method 2 
while (j++ < data.Count) 
{ 
    // do something 
} 

或將一個簡單的for循環依然是更好嗎?

更新: 根據意見,一個subquestion: 是否應while循環可以避免或應該for循環來避免與這些while循環更換?

+0

沒有區別 –

+0

我有一個感覺,那經過匹配和優化後,這兩種方法將被編譯成相同的機器代碼 – undefined

+2

是不是有輕微的邏輯差異? – Peter

回答

2

我建議沒有,而我建議這個

List<int> data = Enumerable.Range(0, 10000000).ToList(); 
int j = -1; 



// Method 1 

while (++j < data.Count) 
{ 
    // do something 
} 

int j = 0; 
do 
    { 
     //anything 
    } while (++j<data.count); 

預先遞增操作比後快,雖然小的性能優勢

+0

「++我比i ++更快」的說法仍然有效嗎?我以爲我在某個地方讀到它不再是(或者我可能是錯的???)? – mezamorphic

+0

@ user1107474我很想看看你在哪找到的。 – juFo

+0

@juFo我只是在stackoverflow上做了一個快速搜索,答案可能是語言相關的。我可能已經看到一篇文章提到另一種語言。 – mezamorphic

1

沒有區別(在性能方面至少有意義的,你應該衡量真的重計算)

我會選擇第一個,因爲它看起來更清晰,

-1

兩者都採取相同的執行時間,沒有區別。您可以使用任何在您的項目。