如何在Objective-C中的switch语句中使用goto?

Jef*_*eff 6 iphone goto objective-c switch-statement

在我的代码中,我需要能够在同一个switch语句中跳转(转到)一个不同的case.有没有办法做到这一点?

我的代码是这样的:(有很多代码我把它全部留下了)

switch (viewNumber) {
case 500:
        // [...]
break;

case 501:
        // [...]
break;
.
.
.
.
.

case 510:
        // [...]
break;

default:
break;
Run Code Online (Sandbox Code Playgroud)

}

感谢您的时间!-Jeff

Ben*_*n S 17

通常非常糟糕的做法是像你要求的那样无条件地跳跃.

我认为更可读/可维护的解决方案是将共享代码放在方法中,并且有多个案例调用该方法.

如果你真的想,你可以goto用来做类似的事情:

switch(viewNumber) {
    case 500:
        // [...]
        goto jumpLabel;
    case 501:
        // [...]
        break;
    case 502:
        // [...]
        jumpLabel:
        // Code that 500 also will execute
        break;
    default:break;
}
Run Code Online (Sandbox Code Playgroud)

注意:我只提供了上面的代码示例来回答您的问题.我现在感觉很脏,我可能不得不买一些坏代码偏移.