你能以编程方式调用 switch-case 中的特定 case 吗?
Can you programmatically call upon a specific case in a switch-case?
我有一个开关盒,看起来像这样:
switch ( class.Function() )
{
case firstThing:
{
}
break;
case secondThing:
{
//call third thing
}
break;
case thirdThing:
{
}
break;
}
有什么方法可以在 C 中调用特定的 case / Objective-C?
不知道您为什么要这样做,但在您的示例中,如果您只是在 case secondThing 的末尾省略 break 语句:用户将继续执行后续的 case 语句,直到他们点击休息。
看来您要实现的是 switch 语句失败。通过在案例 #2 之后省略 break 语句,您将执行案例 #3 中的任何代码。这可能就是你想要的。
switch ( class.Function() )
{
case firstThing:
{
}
break;
case secondThing:
{
//go to case 3
}
case thirdThing:
{
}
break;
}
在您的特定示例中,您可以使用 case fall through,但这不是您问题的一般解决方案,如果有特定于 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;
}
我有一个开关盒,看起来像这样:
switch ( class.Function() )
{
case firstThing:
{
}
break;
case secondThing:
{
//call third thing
}
break;
case thirdThing:
{
}
break;
}
有什么方法可以在 C 中调用特定的 case / Objective-C?
不知道您为什么要这样做,但在您的示例中,如果您只是在 case secondThing 的末尾省略 break 语句:用户将继续执行后续的 case 语句,直到他们点击休息。
看来您要实现的是 switch 语句失败。通过在案例 #2 之后省略 break 语句,您将执行案例 #3 中的任何代码。这可能就是你想要的。
switch ( class.Function() )
{
case firstThing:
{
}
break;
case secondThing:
{
//go to case 3
}
case thirdThing:
{
}
break;
}
在您的特定示例中,您可以使用 case fall through,但这不是您问题的一般解决方案,如果有特定于 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;
}