do-while条件而不声明单独的变量

时间:2011-03-18 14:59:16

标签: c++ do-while flow-control

我在一个类似于这样的函数中有一个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值。

3 个答案:

答案 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);