这段代码可能有点模糊,但是这个问题是关于我必须上交的作业,并且会检查是否存在抄袭,所以我只是给出了问题的要点。
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,然后结束程序。
感谢任何帮助。
答案 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)
{
//....
}
}