再次开始循环c ++

时间:2014-11-14 04:31:33

标签: c++ while-loop

这段代码可能有点模糊,但是这个问题是关于我必须上交的作业,并且会检查是否存在抄袭,所以我只是给出了问题的要点。

bool x = false;
while (x == false)
{
}

if (conditions)
{
    x = true;
}
while (x == true)
{
    if (a == b)
    {
        //....
    }
    else
        x = false;
}

我知道这段代码可能令人困惑,但我会尽力解释我的问题:

一切都运行正常减去最后一部分。在我的第二个while循环中,条件是x == true,但是如果if语句的条件(在while语句中)不满足,我想要x == false,我希望它返回到第一个while循环为条件x == false。但是,它设置x == false,然后结束程序。

感谢任何帮助。

8 个答案:

答案 0 :(得分:2)

例如,您可以按以下方式编写

bool x = false;

do
{
    while ( x == false )
    {
        //...
    }

    if (conditions)
    {
        x = true;
    }

    while ( x == true )
    {
        if ( a == b )
        {
            //....
        }
        else
        {
            x = false;
        }
    }
} while ( x == false );

只有代码中存在逻辑错误,因为最后一次赋值为false会导致无限循环。这是第二个while循环将是无限的,如果x将不被赋值false或外部do,而循环将是无限的,如果x将被赋值为false。:)所以你需要在这个模式中添加一些其他条件。例如,可能还有一个x的赋值。

bool x = false;

do
{
    while ( x == false )
    {
        //...
    }

    if (conditions)
    {
        x = true;
    }

    while ( x == true )
    {
        if ( a == b )
        {
            //....
        }
        else
        {
            x = false;
        }
    }

    if ( one_more_condition ) x = true;
} while ( x == false );

或者你可以在外部do-while循环或内部第二个while循环中的某处使用break语句。

答案 1 :(得分:0)

你可以制作一个else阻止并使用goto返回:在firstloop:之后while (x == false)然后goto firstloop;之后x = false;

答案 2 :(得分:0)

您需要在两个循环周围添加另一个循环。根据您的描述,我认为您可以使用另一个while (x==false)循环执行此操作。如,

bool x = false;
while (x==false)
{
 while (x == false)
 {...}
 ...
 while (x == true)
 {...}
}

但为了清楚起见,我可能会这样做:

bool x = false;
bool allDone = false;
while (allDone==false)
{
 while (x == false)
 {...}
 ...
 while (x == true)
 {...
   if (conditions)
     allDone = true;
  ...
 }
}

答案 3 :(得分:0)

像这样使用:

        bool x = false;
        CheckCondition:
        while (x == false)
        {
        }

        if (conditions)
        {
            x = true;
        }
        while (x == true)
        {
            if (a == b)
            {
                //....
            }
            else
            {   
                x = false;
                goto CheckCondition;
            }   
        }

答案 4 :(得分:0)

将while循环移动到另一个循环,同时循环条件x == false,以便您的代码如下所示: -

bool x = false;
while(x==false)
   {
       while (x == false)
       {
       }

       if (conditions)
       {
          x = true;
       }
       while (x == true)
       {
          if (a == b)
          {
          //....
          }
          else
          x = false;
       }
  }

答案 5 :(得分:0)

将整个事物包裹在while语句中,当你想要它时会中断。底部会打破,然后整个事情会回到顶部。

此外,您的if语句在逻辑上是多余的。当x!= false时,top while语句将中断(因此为true)。

答案 6 :(得分:0)

然后你就可以这样使用:

        bool x = false;
        while (x == false)
        {
        }

        if (conditions)
        {
            x = true;
        }
        while (x == true)
        {
            if (a == b)
            {
                //....
            }
            else
            {   
                x = false;
                while (x == false)
                {
                }

                if (conditions)
                {
                    x = true;
                }
            }   
        }

答案 7 :(得分:0)

此结构可能有效,具体取决于您正在做的事情

while (true) {
    for( bool x = false; x == false; ) {
        // do stuff... set x to true at some point
    }

    if (! conditions) break; // Done if conditions aren't met

    while (a == b)
    {
        //....
    }
}