c#Do-While回电话

时间:2013-01-10 02:57:42

标签: c# if-statement return switch-statement do-while

我被困在我的代码中了!

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

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

3 个答案:

答案 0 :(得分:2)

如果开关盒位于环体的底部,则可以从头开始重新调用continue和循环。

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

如果没有其他选项,您可以使用goto,但beware the consequences

答案 1 :(得分:1)

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

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

如果这确实不起作用,那么我不会使用goto。我知道这是很多人的禁忌,但我的目标是编写清晰的代码。如果你知道自己在做什么,goto会得到最清晰的代码,那么我就说了。

答案 2 :(得分:0)

您可能希望将代码拆分为可读性和维护视图的函数。我建议你试试这个:

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

private string GetResult(eErrorCode)
{
  switch(eErrorCode)
  ...
}