是否可以使用 switch 语句来管理循环?
Is it possible to manage loop with a switch statement?
我想控制一个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。 "Skip the step":
好吧,我想过度概括这个过程。实际上,如果结果是 "Continue" 我想执行一些代码,问题的优点是是否可以使用 'break' 和 'continue' 从 switch 语句中控制循环.
所以是的,答案已经在 here
中
你的问题围绕“跳过步骤”有点不清楚,因为你没有具体说明这个实际上意味着什么但是是的你完全可以用一个开关来管理循环条件
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;
}
}
我想控制一个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。 "Skip the step": 好吧,我想过度概括这个过程。实际上,如果结果是 "Continue" 我想执行一些代码,问题的优点是是否可以使用 'break' 和 'continue' 从 switch 语句中控制循环. 所以是的,答案已经在 here
中你的问题围绕“跳过步骤”有点不清楚,因为你没有具体说明这个实际上意味着什么但是是的你完全可以用一个开关来管理循环条件
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;
}
}