2012-07-12 173 views
3

是否有可能在while循環中返回到循環的開始?Java while循環

像這樣的事情

while(this is true) 
{ 
     do stuff... 
     if(this is true) 
     { 
      restart while loop; 
     } 
    } 

添加清晰:我不是故意的重啓在復位變量,我的意思是重新開始停止執行並將持續到下一次迭代的感覺。

+1

不會'繼續;'做到這一點嗎? – 2012-07-12 17:34:48

+2

你是什麼意思的「重新啓動」,重置所有變量? – Andy 2012-07-12 17:34:54

回答

9

continue關鍵字將做

while(this is true) 
{ 
     do stuff... 
     if(this is true) 
     { 
      continue; 
     } 
    } 

基本上,continue停止當場執行循環,並且然後繼續該循環的下一次迭代。您也可以使用其他循環(例如for循環)來完成此操作。

+0

太棒了,正是我在找的東西。 – 2012-07-12 17:36:45

-2

[編輯]誤解了這個問題!如果你想重新啓動循環,這是有效的。

有很多方法可以做到這一點。您可以在函數中使用while循環並調用該函數。如:

public static void loop(){ 
     while(this is true) { 
       do stuff... 
       if(this is true) { 
        loop(); 
        break; <-- dont forget this! 
       } 
     } 
} 
+0

爲什麼選擇投票? – 2012-07-12 17:41:54

+0

由於無限循環如果你永遠不會改變任何輸入循環()會繼續調用自己,你會被鎖定在一個無限循環。 – 2012-07-12 17:49:54

+0

這將導致StackOverflowError(或類似)以任何可能的語言。 – 2012-07-12 17:51:59

1

是的,這是可能的。 Java爲循環或語句塊提供標籤,並且它必須在語句之前。 語法是identifier:

START: while(this is true) 
{ 
     do stuff... 
     if(this is true) 
     { 
      continue START; 
     } 
    } 


還有更多的方法可以做到這一點,但我認爲這是最簡單的方法。