我有一个如下所示的开关盒:
switch ( class.Function() )
{
case firstThing:
{
}
break;
case secondThing:
{
//call third thing
}
break;
case thirdThing:
{
}
break;
}
有没有办法在C / Objective-C中调用特定案例?
答案 0 :(得分:1)
不知道为什么要这样做,但在你的例子中,如果你只是在案例secondThing结尾处遗漏了break语句:用户将继续执行后续的case语句,直到他们遇到断裂。
答案 1 :(得分:1)
您正在尝试实现的是switch语句失效。通过在案例#2之后省略break语句,您将执行#3中的任何代码。这可能是你想要的。
switch ( class.Function() )
{
case firstThing:
{
}
break;
case secondThing:
{
//go to case 3
}
case thirdThing:
{
}
break;
}
答案 2 :(得分:0)
在您的特定示例中,您可以使用大小写,但这通常不是您的问题的解决方案,如果有secondThing
特定的代码,则可能导致混淆并且可能被视为错误实践。
switch ( class.Function() )
{
case firstThing:
{
}
break;
case secondThing:
case thirdThing:
{
}
break;
}
如果您只是将每个案例的主体实现为一个函数,那么这可能是更通用的解决方案:
switch( class.Function() )
{
case firstThing: something(); break;
case secondThing: anotherThing(); oneMoreThing(); break;
case thirdThing: oneMoreThing(); break;
}