我正在使用一个
while (true)
{
if (x == y)
{
break;
}
else
{
//do stuff
}
}循环就像这样,框架只是一个示例框架,因为实际代码本身是复杂的,它需要在多个不同区域中针对多个不同条件使用"break;“语句。我的问题是:有没有一种方法可以编写一条循环语句,而根本不需要循环检查条件?有没有比while(true)更有效的方法来编写无限循环呢?
编辑:(java)
edit2:
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;
}发布于 2019-09-27 14:49:32
有没有一种方法可以编写一条循环语句,而不需要对条件进行循环检查?有没有比while(true)更有效的方法来编写无限循环呢?
您可以用多种方式编写无限循环,但它们都是等价的。这两个都不是真正比其他的更有效:
while (true) { ... }do { ... } while (true);for (;;) { ... }根据实际代码,将“-loop-logic”反转为“ -loop-logic”可能是有意义的,如下所示:
boolean continueLoop;
do {
continueLoop = false;
// ... do stuff ...
if ( some condition ) {
continueLoop = true;
}
// ... do stuff ...
} while (continueLoop);发布于 2019-09-27 14:27:02
对于您的特定示例,您可以将中断if语句的逻辑移至while条件:
while (x != y) {
// do stuff
}实际上,如果您的原始while循环有多个中断条件,您也许能够将它们都转移到while条件,例如
while (!cond1 && !cond2 ... ) {
// execute
}发布于 2019-09-27 14:37:10
是的,有很多方法可以做到这一点。例如,您可以在循环外声明一个变量,根据变量值设置一个条件,然后在循环内重置该变量,因此循环将在不检查内部条件的情况下无限运行。
https://stackoverflow.com/questions/58128919
复制相似问题