C#错误'继续'

时间:2015-07-08 21:17:50

标签: c# if-statement boolean-logic

我尝试使用带有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;。

4 个答案:

答案 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) { ... }

撤消if

答案 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在这里无效。它根本没有任何关系,也不知道哪里继续。它意味着在循环的迭代中使用。