2016-04-05 50 views
-7

continue語句應該作用於內部循環,對嗎?或者我錯過了什麼?'繼續'的哪一個循環會對一個標誌起作用?

for (j=0; j< 100; j++) 
    { 
    for (i=0 ; i<10; i++) 
    { 

    bool flag = false; 

     //CALL TO A FUNCTION WHICH, BASED ON SOME CONDITION, MODIFIES FLAG AND RETURNS IT TO THIS LOOP 

     if(flag) 
      { 
      continue; //SHOULDN'T IT CONTINUE THE LOOP ON i?????? 
      } 

     //CALLS TO SOME OTHER FUNCTIONS WHICH SHOULDN'T BE CALLED IF FLAG IS 1 

     } 
    } 
+1

你試過了嗎? – wvdz

+0

是的,我做到了。在我的情況下,它不會迭代到下一個i值,它將繼續調用低於該條件的其他函數,即使現在標誌爲1(因爲我通過打印進行檢查,我知道) – AK02

+0

對不起,我打印的值在函數中,它給了1,但返回值時,我想有一些錯誤,因爲在我的循環中,現在當我打印它時,它又是0。我會看看有什麼不對。 – AK02

回答

2

繼續移動到最接近它的內部循環的下一個迭代。在你的情況下,它將移動到第二個循環的下一個迭代,即具有值爲i的循環。

如果i的值在遇到繼續時爲9,則它將進入第二個循環,並且隨着i的值在增量後變爲10,它不滿足條件,它將移動到外部循環的下一個迭代值爲j。

+0

我不知道爲什麼在我的代碼中它移動到j的下一個迭代。你能提出一些建議嗎? – AK02

+0

您可以在if條件中添加打印語句以確認它確實輸入了if條件並執行了continue語句。 – Joyson

0

如果內循環計數器(i)在點擊continue語句時處於9,則內循環將退出並且外循環的一次迭代將在進入內循環之前發生,並且其計數器初始化爲0.

相關問題