「multiple default labels in one switch」というエラーメッセージは、switch文内に複数のdefaultラベルが存在する場合に表示されます。これは、switch文は、条件に応じた処理を行うための文です。そのため、switch文内には、case文で処理する条件と、それ以外を処理するdefault文を1つだけ書く必要があります。
例えば、次のようなコードでは、switch文内に複数のdefault文が存在するため、このようなエラーが表示されます。
x
20
20
1
int main() {
2
int x = 1;
3
4
switch (x) {
5
case 1:
6
// 処理1
7
break;
8
case 2:
9
// 処理2
10
break;
11
default:
12
// default処理1
13
break;
14
default:
15
// default処理2
16
break; // エラー: 複数のdefault文が存在します
17
}
18
19
return 0;
20
}
正しい使い方は、次のようにswitch文内に1つだけdefault文を書くことです。
1
17
17
1
int main() {
2
int x = 1;
3
4
switch (x) {
5
case 1:
6
// 処理1
7
break;
8
case 2:
9
// 処理2
10
break;
11
default:
12
// default処理
13
break; // 正しい使い方: default文が1つだけ存在します
14
}
15
16
return 0;
17
}
また、default文は、switch文内で処理されなかった条件を処理するための文です。例えば、次のようなコードでは、xが1または2以外の値の場合、default文が実行されます。
1
17
17
1
int main() {
2
int x = 1;
3
4
switch (x) {
5
case 1:
6
// 処理1
7
break;
8
case 2:
9
// 処理2
10
break;
11
default:
12
// xが1または2以外の値の場合、ここが実行されます
13
break;
14
}
15
16
return 0;
17
}
コメント