【C言語】multiple default labels in one switch

「multiple default labels in one switch」というエラーメッセージは、switch文内に複数のdefaultラベルが存在する場合に表示されます。これは、switch文は、条件に応じた処理を行うための文です。そのため、switch文内には、case文で処理する条件と、それ以外を処理するdefault文を1つだけ書く必要があります。

例えば、次のようなコードでは、switch文内に複数のdefault文が存在するため、このようなエラーが表示されます。

int main() {
    int x = 1;

    switch (x) {
        case 1:
            // 処理1
            break;
        case 2:
            // 処理2
            break;
        default:
            // default処理1
            break;
        default:
            // default処理2
            break; // エラー: 複数のdefault文が存在します
    }

    return 0;
}

正しい使い方は、次のようにswitch文内に1つだけdefault文を書くことです。

int main() {
    int x = 1;

    switch (x) {
        case 1:
            // 処理1
            break;
        case 2:
            // 処理2
            break;
        default:
            // default処理
            break; // 正しい使い方: default文が1つだけ存在します
    }

    return 0;
}

また、default文は、switch文内で処理されなかった条件を処理するための文です。例えば、次のようなコードでは、xが1または2以外の値の場合、default文が実行されます。

int main() {
    int x = 1;

    switch (x) {
        case 1:
            // 処理1
            break;
        case 2:
            // 処理2
            break;
        default:
            // xが1または2以外の値の場合、ここが実行されます
            break;
    }

    return 0;
}

コメント

タイトルとURLをコピーしました