簡體   English   中英

有沒有辦法在原始條件變為假之前突破while循環?

[英]Is there a way to break out of a while loop before the original condition is made false?

有沒有辦法在原始條件變為假之前突破while循環?

例如,如果我有:

while (a==true) 
{ 
    doSomething() ; 
    if (d==false) get out of loop ;
    doSomething_that_i_don't_want_done_if_d_is_false_but_do_if_a_and_d_are_true() ;
} 

有沒有辦法做到這一點?

使用break語句

if (!d) break;

請注意,您不需要在布爾表達式中與truefalse進行比較。

break是你正在尋找的命令。

並且不要與布爾常量相比 - 它實際上只是模糊了你的意思。 這是備用版本:

while (a) 
{ 
    doSomething(); 
    if (!d)
        break;
    doSomething_that_i_don't_want_done_if_d_is_false_but_do_if_a_and_d_are_true();
} 

試試這個:

if(d==false) break;

這稱為“未標記”的break語句,其目的是終止whilefordo-while循環。

參考這里

是的,使用break語句。

while (a==true) 
{ 
    doSomething() ; 
    if (d==false) break;
    doSomething_that_i_don't_want_done_if_d_is_false_but_do_if_a_and_d_are_true() ;
} 
while(a)
{
    doSomething();
    if(!d)
    {
        break;
    }
}

請執行以下操作注意包含大括號 - 其良好的編程習慣

while (a==true) 
{ 
    doSomething() ; 
    if (d==false) { break ; }
    else { /* Do something else */ }
} 
while ( doSomething() && doSomethingElse() );

更改方法的返回簽名,例如d==doSomething()a==doSomethingElse() 如果你的循環逃脫,它們必須已經有副作用。

如果您需要對是否啟動循環進行初始測試,可以在前面拋出一個if

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM