4

2つの定数(1 + 2)は同じcaseステートメントを共有します。コードを2倍にしたくありません。

これを行うための正しい構文は何ですか?

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と呼ばれる用語を使用します。コントロールがラベルに到達するたびに、見つかるまで落ちると言います。Onコントロールは の右中括弧に送信されます。case 0:breakbreakswitch

breakに遭遇しない場合は、 then のcaseようにcase次に進みcase 2ます。上記のように、1 つのステートメントcase 1case 2共有します。break

于 2013-02-25T17:01:08.363 に答える
1

ケースの最後にbreakまたはreturnが使用されていない場合、複数のケースラベルが同じステートメントを参照できます。ケース1でbreakステートメントを使用しない場合、実行はケース2に流れます。

于 2013-02-27T04:38:36.023 に答える