4

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

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

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

2 回答 2

10

采用 :

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

编辑1:

switch我们说一个叫做fall-through的术语。每当控制到达一个标签时说它case 0:下降直到break被发现。Onbreak控制被发送到switch.

如果break没有遇到,它会casecasethen一样进入下一个case 2。所以在上面case 1case 2分享一个break声明。

于 2013-02-25T17:01:08.363 回答
1

如果在 case 结束时没有使用 break 或 return,则多个 case 标签可以引用同一个语句。如果在 case 1 中不使用 break 语句,则执行流向 case 2。

于 2013-02-27T04:38:36.023 回答