猿问

优化: while (true)

我正在使用一个


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;

}


Helenr
浏览 114回答 3
3回答

慕沐林林

有没有一种方法可以编写循环语句而不需要循环检查条件?除了 while(true) 之外,还有更有效的方法来编写无限循环吗?您可以通过多种方式编写无限循环,但它们都是等效的。两者实际上并不比其他方法更有效:while (true) { ... }do { ... } while (true);for (;;) { ... }根据实际代码,将“中断循环逻辑”反转为“继续循环逻辑”可能是有意义的,如下所示:boolean continueLoop;do {&nbsp; &nbsp; continueLoop = false;&nbsp; &nbsp; // ... do stuff ...&nbsp; &nbsp; if ( some condition ) {&nbsp; &nbsp; &nbsp; &nbsp; continueLoop = true;&nbsp; &nbsp; }&nbsp; &nbsp; // ... do stuff ...} while (continueLoop);

杨__羊羊

if对于您的特定示例,您可以将语句中的中断逻辑移至while条件:while (x != y) {&nbsp; &nbsp; // do stuff}事实上,如果您的原始while循环有多个中断条件,您也许可以将它们全部移动到该while条件,例如while (!cond1 && !cond2 ... ) {&nbsp; &nbsp; // execute}

动漫人物

是的,有很多方法可以做到这一点。例如,您可以在循环外部声明一个变量,设置基于变量值的条件并在循环内部重置该变量,因此循环将无限运行而不检查内部条件。
随时随地看视频慕课网APP

相关分类

Java
我要回答