亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

優化: while (true)

優化: while (true)

Helenr 2023-09-06 16:38:00
我正在使用一個while (true){    if (x == y)    {        break;    }    else    {        //do stuff    }}像這樣循環,該框架只是一個示例框架,因為實際代碼本身非常復雜且過于復雜,需要“break;” 在多個不同區域針對多個不同條件進行聲明。我的問題是;有沒有一種方法可以編寫循環語句而不需要循環檢查條件?除了 while(true) 之外,還有更有效的方法來編寫無限循環嗎?編輯:(java)編輯2:while (a < b){    while (true)    {        if (c < d)        {            if (e == null)            {                //do alot of stuff                break;            }            else            {                //do something            }        }        else if (d > c)        {            if (e == null)            {                //do alot of stuff                break;            }            else            {                //do something            }        }        else if (d == c)        {            break;        }    }    a = a + 1;}
查看完整描述

3 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

有沒有一種方法可以編寫循環語句而不需要循環檢查條件?除了 while(true) 之外,還有更有效的方法來編寫無限循環嗎?

您可以通過多種方式編寫無限循環,但它們都是等效的。兩者實際上并不比其他方法更有效:

  1. while (true) { ... }

  2. do { ... } while (true);

  3. for (;;) { ... }

根據實際代碼,將“中斷循環邏輯”反轉為“繼續循環邏輯”可能是有意義的,如下所示:

boolean continueLoop;

do {

    continueLoop = false;


    // ... do stuff ...


    if ( some condition ) {

        continueLoop = true;

    }


    // ... do stuff ...


} while (continueLoop);


查看完整回答
反對 回復 2023-09-06
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

if對于您的特定示例,您可以將語句中的中斷邏輯移至while條件:


while (x != y) {

    // do stuff

}

事實上,如果您的原始while循環有多個中斷條件,您也許可以將它們全部移動到該while條件,例如


while (!cond1 && !cond2 ... ) {

    // execute

}


查看完整回答
反對 回復 2023-09-06
?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

是的,有很多方法可以做到這一點。例如,您可以在循環外部聲明一個變量,設置基于變量值的條件并在循環內部重置該變量,因此循環將無限運行而不檢查內部條件。

查看完整回答
反對 回復 2023-09-06
  • 3 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號