0

我被困在我的代码中!

我有一个 Do -While 循环,里面有 Switch-Case,每个案例都有这样的 If Else 条件:

这是问题一旦我按下重试按钮(在 If-Else 条件下),我想回到 Do 循环的中间并再次重新运行它以进行检查......我不太确定我应该怎么做。任何帮助都会很棒。

4

3 回答 3

2

如果开关盒位于循环体的底部,您可以continue从一开始就调用并重复循环。

如果您需要从循环的中间开始,而不是从开始,我能想到的唯一方法是将中间包裹在另一个循环体中。现在continue将应用于内部循环,你会得到你想要的。

如果没有其他选择,您可以使用goto,但要注意后果

于 2013-01-10T03:00:11.293 回答
1

我真的不知道你为什么要在一个巨大的循环和 switch 语句中构造你的代码。对我来说,我可能会打破它。这将使其更易于遵循。但也许你有一个理由。

如果可以,请创建一个内部循环并继续执行该循环,直到返回一个非重试值。

如果这真的不起作用,那么我不在上面使用goto. 我知道这对很多人来说是禁忌,但我的目标是编写清晰的代码。如果你知道你在做什么并且goto产生了最清晰的代码,那么我说去吧。

于 2013-01-10T03:01:00.313 回答
0

您可能希望将代码拆分为功能,以提高可读性和维护性。我建议你试试这个:

do
{
  if(eErrorCode!=0)
  {
     if( GetResult(eErrorCode) == "Break")
      break;
  }
}

private string GetResult(eErrorCode)
{
  switch(eErrorCode)
  ...
}
于 2013-01-10T03:07:06.273 回答