通过不同的情况切换相同操作的语句语法

时间:2013-02-25 16:57:04

标签: objective-c c switch-statement

两个常量(1 + 2)共享相同的case语句。我不想加倍代码。

执行此操作的正确语法是什么?

switch (expression) {
        case 0:
            [self taskA];
            break;
        case 1:
            [self taskB];
            break;
        case 2:
            [self taskB]
            break;
        default:
            break;
    }

2 个答案:

答案 0 :(得分:10)

使用:

switch (expression) {
    case 0:
        [self taskA];
        break;
    case 1:
    case 2:
        [self taskB];
        break;
    default:
        break;
}

编辑1:

switch我们说的是一个名为 fall-through 的术语。每当控件到达标签case 0:时,它就会落到break之前。在break上,控件会发送到switch的结束括号。

如果未遇到break,则转到下一个case,如case然后case 2。因此,case 1case 2上方共享一个break语句。

答案 1 :(得分:1)

如果在案例结尾处未使用break或return,则多个case标签可以引用相同的语句。 如果在案例1中没有使用break语句,则执行流程进入案例2。