2013-10-13 46 views
1

我已經搜索過,可以找到解決類似問題的問題,但沒有爲這個特定的問題和語言。在閱讀了一些Q & A而沒有找到答案後,我搜索了,並得到零結果。這將繼續導致嵌套for循環做什麼?

我一直在問這個問題,在一所大學測驗:

如果我有:

int n = 3; 
    for (int i = 1; i <= n; i++) { 
     System.out.print(" x "); 
     for (int j = 1; j <= n; j++) { 
     System.out.println(" x "); 
      continue; 
      //no content here 
     } 
    } 

而不存在continue語句後的任何內容;這如何使用continue影響此循環?它是否會導致循環繼續迭代的第二個循環中斷?

+2

沒有把一個'continue'這樣的感覺。刪除它會給你同樣的行爲。基本上,它用於繼續迭代電流回路,而不進一步移動。 –

+0

http://stackoverflow.com/questions/389741/continue-keyword-in-java –

+0

@RohitJain我被問過這個問題的大學,我很困惑,爲什麼它會放在那裏;因爲我想盡可能多的 –

回答

2

如果在繼續下有一個代碼,它將是一個死代碼。如果沒有continue;,循環將繼續。

這兩個代碼塊具有相同的效果:

for(int i=0; i < 10; i++) { 
    //Code 
} 

for(int i=0; i < 10; i++) { 
    //Code 
    continue; 
} 
+1

謝謝你,你完全回答了我的問題。簡單,簡潔和準確 –

3

A continue沒有標籤的語句將從條件最內層的while或do,或者循環,以及從更新表達式的最內層for循環重新執行。它通常用於提前終止循環的處理,從而避免深層嵌套的if語句。

因此,對於您的程序,關鍵作品continue沒有多大意義。它被用作一種逃避的東西。對於e.g:

aLoopName: for (;;) { 
    // ... 
    while (someCondition) 
    // ... 
    if (otherCondition) 
     continue aLoopName; 

說,如果你修改你的程序,如:

int n = 3; 
    for (int i = 1; i <= n; i++) { 
     System.out.print(" x "); 
     for (int j = 1; j <= n; j++) { 
     if(j%2!=0) 
     { 
      System.out.println(" x "); 
      continue; 
     } 
     else 
     break; 
    } 

這將打破 for循環J = 2。希望你能理解。 :)

+0

你沒有回答我的問題,專門解決了沒有'if'或'while'的嵌套for循環,是的,我明白這一點。我不明白的是爲什麼你在回答中使用'while'和'if' –

+0

你的問題看起來很模糊。置於inner for循環中的'continue'關鍵字沒有意義。即使你刪除了關鍵字,它也不會產生任何影響。理解如何以及何時使用「繼續」更好,而不是隨意隨地使用它。 – user2339071

+0

它不是模糊的,它很簡單明瞭,只是因爲它在代碼中是多餘的,並不意味着它是模糊的 –

2

的回答你的問題:

這將如何使用繼續影響這個循環?它是否會導致循環繼續迭代的第二個循環中斷?

是:

第二循環不會打破,它將繼續進行迭代。 break關鍵字是打破循環。

編輯

假設你有for循環:

for(int i = 0; i < 5; i++){ 
    continue; 
} 

在執行for環(i++)的聲明,繼續下一次迭代continue

在其他循環中,while{}do{}while();事情不會像這樣,並可能導致無限循環。