while(thingA is true)
{
}
if(thingA is not true)
{
make thingA true
then back to looping
}
我的问题是,如果循环是真的,那将不断循环,但如果它不是我将通过aonther代码,使其真实,在那之后我又希望它循环。我能做到这一点!?一个问题有关循环
while(thingA is true)
{
}
if(thingA is not true)
{
make thingA true
then back to looping
}
我的问题是,如果循环是真的,那将不断循环,但如果它不是我将通过aonther代码,使其真实,在那之后我又希望它循环。我能做到这一点!?一个问题有关循环
您提供的代码块实际上是一个无限循环。原因是因为thingA
保持true
到while
循环,直到它的计算结果为false
并跳出循环。然后,它是由if
语句来检查,看它是否是false
检查 - 它必须是,或while
循环就不会被打破。然后你循环更多一些。
只需检查thingA
在无限循环内是否为假,并执行您的特殊情况逻辑。
我的问题是,如果你想循环,直到某些东西是假的,那么一旦它的假设置为真并重新循环,为什么检查条件呢?为什么不只是:
while (true)
{
if (thingA is not true)
{
// do whatever you want
}
}
我的观点只是,如果你想要做的就是让它真正和重新循环,为什么要停止循环呢?
无论thingA
的值如何(您总是会回到循环中),您所描述的将永远循环。如果您需要的时候thingA
的状态发生改变,那么你只需要采取一些行动:
while (1)
{
if (!thingA) { /* Some action */ }
...
}
而不是重新安排您的代码在同一功能,尝试将通用代码移动到一个单独的功能。这将使你的代码更容易理解和流动更易于理解。
在你的情况,你可能想是这样的:
void MyLoopFunction()
{
bool MyCheckVariable = true;
while (MyCheckVariable)
{
...
}
}
void SomeOtherFunction()
{
// Keep executing until infinity
while (true)
{
MyLoopFunction();
// Fell out of the loop, do something else and retry
...
}
}
正如上面写的你有一个无限循环! – 2011-02-08 20:05:20