我尝试使用带有bool的if语句,如果代码运行一次,它将无法再次运行。这是我正在使用的代码。
int random = Program._random.Next(0, 133);
if (random < 33) {
bool done = false;
if(done)
{
continue; // Error is shown for this statement
}
Console.WriteLine("Not done!");
done = true;
}
Visual Studio正在显示的错误是:&#34;没有封闭的循环可以中断或继续&#34;。
答案 0 :(得分:2)
根据类/方法的要求,您可能会颠倒逻辑:
if (!done)
{
Console.WriteLine("Not done!");
done = true;
}
答案 1 :(得分:0)
您不能仅在循环内使用continue。所以你必须没有这个:
int random = Program._random.Next(0, 133);
if(random < 33)
{
bool done = false;
if(!done)
{
Console.WriteLine("Not done!");
done = true;
}
}
在这种情况下,您应该使用if (!done) { ... }
答案 2 :(得分:0)
您不能像这样使用continue
,它只能在循环中使用。 continue
语句将转到循环的结尾并继续下一次迭代,没有循环就没有循环结束。
您可以改为使用else
:
if (done) {
// anything to do?
} else {
Console.WriteLine("Not done!");
done = true;
}
如果变量为true则无法执行任何操作,则可以改为反转表达式:
if (!done) {
Console.WriteLine("Not done!");
done = true;
}
注意:您需要将变量done
存储在范围之外。现在您有一个始终设置为false
的局部变量,因此永远不会跳过代码。
答案 3 :(得分:0)
例外情况告诉您continue
在这里无效。它根本没有任何关系,也不知道哪里继续。它意味着在循环的迭代中使用。