2011-09-22 51 views
8

考慮此C++代碼C++跳過當前`for`循環的其餘部分並開始一個新的循環。

for(int i=0; i<=N; ++i) 

{ 

if(/* Some condition 1 */) {/*Blah Blah*/} 

if(/* Some condition 2 */){/*Yadda Yadda*/} 

} 

是否有任何關鍵字/命令,這樣,如果條件1的計算結果爲true/*Blah Blah*/執行我可以跳過當前迭代的其餘部分,並通過遞增i開始一個新的迭代。

我對這種語句跳過的知識最接近的是break,但它完全終止了循環。

我想可以通過使用一些標誌和if語句來做到這一點,但一個簡單的關鍵字將是非常有用的。

+1

+1來抵消可怕downvote –

+1

你應該閱讀從[這裏](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)列表的圖書。 – vivek

+0

謝謝你這個不錯的清單。 – smilingbuddha

回答

27

使用關鍵字continue它將'繼續'到循環的下一次迭代。

+0

所以在這種情況下,我應該在'/ * Blah Blah * /'語句尾部使用'continue',對嗎? – smilingbuddha

+0

正確。你將'continue'放置在你希望它移動到下一次迭代循環的流程中的任何點上。 – 0x5f3759df

+0

我'#define跳過繼續'在我的主頭文件中。 'skip'然後成爲'continue'的同義詞,它意味着「跳過」一個循環迭代,(因此'繼續'下一個) – bobobobo

2

使用Continue聲明,停止電流回路,並繼續到下一個,而不是完全斷裂

Continue

3

這種情況似乎更適合,如果.. 其他 ..比繼續,雖然繼續會很好地工作。

for(int i=0; i<=N; ++i) 
{ 
    if(/* Some condition 1 */) 
    {/*Blah Blah*/} 
    else if(/* Some condition 2 */) 
    {/*Yadda Yadda*/} 
} 
+0

哦,是的!多麼愚蠢的我:D謝謝。天知道我在想什麼。 – smilingbuddha