是否可以使用switch语句管理循环?

时间:2019-06-14 09:38:14

标签: c# loops switch-statement break continue

我想控制一个while循环,如果结果为“ Continue”,我什么都不做,如果结果为“ Retry”,我想跳过此步骤,如果结果为“ Finish”,我想中断循环。

问题在于switch语句本身正在使用我需要管理循环的“ break”和“ continue”关键字。

while(some bool)
{
   var result = GetResult(...);
   switch(result)
   {
      case MyResult.Continue:
      //do nothing
      break;
      case MyResult.Retry:
      // continue the loop
      break;
      case MyResult.Finish:
      // break the loop
      break;
   }
}

这是否可能?或者我应该只使用if else语句(毕竟,可能的结果范围不是很大)吗?

编辑:

A.d。 “跳过步骤”: 好吧,我想过分概括这个过程。实际上,如果结果是“ Continue”,我想执行一些代码,那么问题的好处是,是否有可能在switch语句中使用“ break”和“ continue”来控制循环。 所以是的,答案已经在here

1 个答案:

答案 0 :(得分:1)

您对“ 跳过步骤”的问题有点不清楚,因为您尚未指定这实际上是什么意思,但是可以,您可以完全使用开关来管理循环条件

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;
   }
}