C# 是否可以使用switch语句管理循环?
我想控制一个while循环,如果结果是“继续”,我什么也不想做,如果是“重试”,我想跳过这个步骤,如果是“完成”,我想打破这个循环 问题是switch语句本身使用了我管理循环所需的“break”和“continue”关键字C# 是否可以使用switch语句管理循环?,c#,loops,switch-statement,break,continue,C#,Loops,Switch Statement,Break,Continue,我想控制一个while循环,如果结果是“继续”,我什么也不想做,如果是“重试”,我想跳过这个步骤,如果是“完成”,我想打破这个循环 问题是switch语句本身使用了我管理循环所需的“break”和“continue”关键字 while(一些bool) { var result=GetResult(…); 开关(结果) { 案例MyResult。继续: //无所事事 打破 案例MyResult。请重试: //继续循环 打破 案例MyResult.Finish: //打破循环 打破 } } 这是可
while(一些bool)
{
var result=GetResult(…);
开关(结果)
{
案例MyResult。继续:
//无所事事
打破
案例MyResult。请重试:
//继续循环
打破
案例MyResult.Finish:
//打破循环
打破
}
}
这是可能的还是我应该用if-else语句来实现(毕竟,可能结果的范围并不是很大)
编辑:
A.d.“跳过这一步”:
嗯,我想过度概括这个过程。实际上,如果结果是“Continue”,我想执行一些代码,问题的优点是是否可以使用“break”和“Continue”从switch语句中控制循环。
是的,答案已经在中。您的问题对于“跳过步骤”有点不清楚,因为您没有指定这实际上意味着什么,但是是的,您完全可以使用开关来管理循环条件
bool continueLoop = true;
while(continueLoop)
{
var result = GetResult(...);
switch(result)
{
case MyResult.Continue:
//do nothing
break;
case MyResult.Retry:
// continue the loop
break;
case MyResult.Finish:
// break the loop
continueLoop = false;
break;
}
}
什么都不做和继续循环有什么区别?“跳过步骤”,哪一步?你试过了吗?它有效吗?或者甚至对(bool continueLoop=true;continueLoop;){…}而不是
bool continueLoop=true;而(continueLoop){…}
一般情况下continueLoop=false;继续代码>如果在开关之后有一些代码
:而(…){…开关(结果){}一些代码{u这里}