我被困在我的代码中了!
我有一个Do -While循环,里面我有Switch-Case,每个案例都有If Else条件:
这是问题所在 一旦我按下重试按钮(在If-Else条件下)我想回到Do循环的中间并再次重新运行以检查... 我不太确定我应该怎么做。 任何帮助都会很棒。
答案 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)
...
}