2013-10-14 89 views
1
for(size_t i=0;i<vec.size();i++){ 
    if(n>vec[i]){ 
     a=i; 
     break; 
    } 
} 

在這個例子中,我打破了if語句或for循環嗎?它在C++中打破我的循環?

+3

試試吧:ideone.com –

+1

無論如何,你應該使用'std :: find_if'。 – chris

+1

你不能打破如果陳述... – Liel

回答

4

斷裂語句用來跳出開關循環語句即的同時,做或for循環。該C++ draft standard部分6.6.1break語句說:

break語句應在迭代語句或switch語句只發生,並導致最小的終止封閉迭代語句或switch語句;如果有的話,控制權傳遞給終止陳述後面的陳述。

由於如果不是循環語句開關那麼突破將離開循環。

0

它會從中斷循環。

在循環中,break語句結束最近的封閉 ,或語句的執行。

來源:Microsoft docs

1

一個break語句結束只有doforswitch,或while聲明立即圍住它。它不會打破if語句,因此您的代碼正在脫離循環。