2013-10-18 43 views
-1

一些迭代碼是這樣寫的儘管或For循環,其中一個西服哪個條件

while(true)       for(int i = 0 ; i<=4;++i) 
             { 
{ 
    System.out.println(i);    System.out.println(i); 
    if(i==4)         
    break; 
              } 
} 

兩者都具有在其內部將其作爲假設相同的邏輯。那麼哪一個會更快,在代碼中使用更好,以及使用其中任何一個的含義是什麼?

+5

你的while循環將陷入無限循環。 – nomann

+0

sry我忘了提及++我在while循環 –

+1

@DeepSaxena然後更新你的文章,這樣對新訪問者有好處 – SpringLearner

回答

1

第一個是無限循環:)(取決於我之前的循環)第二個(幾乎)你所期望的。去抓一本關於你的編程語言的好手冊,它會解釋不同之處。

在另一層次上:循環優化更適合於循環(AFAIK),因此「聰明」的編譯器可能爲「for」循環生成更好的代碼。 http://en.wikipedia.org/wiki/Loop_optimization

+0

sry我忘了提及++我在while循環 –

+0

我的評論仍然有效:去搶手冊:) – fritzone

+3

**去搶手冊**如果你想回答,然後完全回答,以便未來的用戶將受益。只給部分答案在評論部分會更好 – SpringLearner

0

它們完全不同,但如果它們的行爲相同,在這種情況下從不使用break;

第二個問題更清楚,當你必須考慮到性能時,你不必在乾淨的代碼後退。

第二個bucle是自我記錄的,而第一個需要添加理由來添加中斷以便理解。

0

結束左側while循環,你必須incriment i

編輯:假設i是小於4時,在循環開始

0

爲此,使用for之一,因爲你需要的值爲i。這對維護更爲理解。無論如何,編譯器會優化這兩個代碼,並且運行時可能會相同。

0

考慮到你的時間不是一個無限循環,就性能而言沒有區別。不過,我個人更喜歡循環,因爲它更清潔。試想一下:

int i = 0; 
while (true) { 
    doSomething(i++); 
    if (i == 4) 
    break; 
} 

看起來吸塵器

for (int i = 0; i <= 4; i++) 
    doSomething(i); 
0

進出口使用for每當我知道itterations提前數。

0

如果你知道有多少次你想要做一些操作,你必須使用循環,否則使用while循環。 例如:

  • 如果你有一些數組或ArrayList中,然後假設你要添加的所有 elemnts,那麼你應該通過size()功能,因爲你知道 的ArrayList的大小使用循環和知道數組的大小通過length 屬性。
  • 如果你有結果集,並且你想從中檢索所有行,那麼你應該使用while循環,因爲你不知道結果集對象中有多少個元素在 。
0

忽略你的問題的錯字,假設你想知道哪一個我選擇當兩個loops本質上是做同樣的事情。

答案是你可以去任何一個。

但它是更好地使用for loop,如果你知道你要多少次運行loop,你可以在initialization設置condition。如果你想延長iteration,將來也很容易改變它。

如果您不確定需要多少iteration,您可以選擇while。在你的情況下,我會去for loop

注:答案是基於意見的。