2013-10-15 29 views
2

我做了一個函數調用,當它返回false時,我會繼續無限期地檢查,直到它返回true。以下代碼是否正常?C++函數檢查真實條件

while(true) 
{ 
    bool result = func(); 

    if(result == false) 
    continue; 
    else 
    break; 
} 
+0

「無限期檢查」 - ?? –

+0

當你測試它時發生了什麼? –

+0

@Shumail Mohy-ud-Din它工作,但我看起來更好。 –

回答

4

如何擺脫breakcontinue的。它不被認爲是非常好的使用它們(尤其是當不要求):

bool result; 
do 
{ 
    result = func(); 

    if(result == false) { 
     // Supposedly you want to do something here...? 
    } 
} while(result == false); 

當然你也可以使用!而不是false以節省一些字節的源代碼。但我想這一點並不重要。

+0

+1這種方法 - 對我來說是新東西:) –

+0

使用像'result == false'這樣的表達式也不是很好。這只是'!結果'。 –

0

可以縮短。

do 
    { 
    } while (!func()); 
2

爲什麼不使用

while (!func()); 

呢?有些人不喜歡看到空的while,因此可能更喜歡@dwxw的解決方案。

+0

本身沒有任何問題,但控制的(空的)語句應該在單獨的行上,至少。 –

4

你可以做到這一點,但爲什麼不只是:

while(!func()) 
{ 
    // do what you want to do... 
}