我在一个类似于这样的函数中有一个do-while循环:
do
{
// a bunch of stuff
if (something < something else)
{
return true;
}
else if (stuff > other stuff)
{
if (something != other stuff)
{
return false;
}
else
{
return true;
}
}
} while (condition);
我的问题在于最后的condition
。我能跟踪这个问题的唯一方法是在循环之前声明一个布尔变量,并将其值设置为匹配return
值,并在每个值之后检查while()
迭代。虽然这会起作用,但对我来说似乎相当不优雅,我想知道是否有一种方法可以让while()
转而使用return
值。
答案 0 :(得分:2)
目前尚不清楚您的情况如何。无论如何,你可能想要一个无限循环:
for (; ;) {
… your code here …
}
或:
while (true) {
… your code here …
}
这个循环永远不会自行停止......但是由于你使用return
退出它,这不是问题。
答案 1 :(得分:1)
假设您的代码由于您试图解释它而不正确,那么您应该采取的措施是为了满足您的回报需求与while();
对于其他人来说,下面的代码是不正确的逻辑,但我试图将它保存在他使用的类似伪代码中。基本上,如果你想让while模仿返回值,你需要返回!
以便条件退出。
do
{
// a bunch of stuff
if (something < something else)
{
return !condition;
}
else if (stuff > other stuff)
{
if (something != other stuff)
{
return condition;
}
else
{
return !condition;
}
}
} while (condition);
答案 2 :(得分:0)
你可以说
do
{
// a bunch of stuff
if (something < something else)
{
return true;
}
else if (stuff > other stuff)
{
if (something != other stuff)
{
return false;
}
else
{
return true;
}
}
else if(exit_condition)
break;
} while (1);