“duplicate case value” というエラーメッセージは、プログラムの switch
文で同じ値を持つ case
文が複数定義されている場合に発生するものです。C 言語では、switch
文内の case
文には、異なる値を持たせる必要があります。
例えば、以下のようなプログラムでこのエラーが発生する可能性があります。
x
17
17
1
2
3
int main() {
4
int num = 10;
5
switch (num) {
6
case 10:
7
printf("num is 10\n");
8
break;
9
case 10:
10
printf("num is 20\n"); // エラー: duplicate case value
11
break;
12
default:
13
printf("num is not 10 or 20\n");
14
break;
15
}
16
return 0;
17
}
上記のプログラムでは、num
という整数型(int
)の変数を宣言しています。そして、num
の値によって異なる処理を行うために、switch
文を使用しています。
しかし、上記のプログラムでは、case 10:
という文が 2 回定義されています。そのため、同じ値を持つ case
文が複数定義されていると判断され、プログラムが実行されると、エラーが発生します。
このような場合、重複した case
文を削除することで、プログラムが正しく動作するようになります。例えば、以下のように修正することができます。
1
14
14
1
2
3
int main() {
4
int num = 10;
5
switch (num) {
6
case 10:
7
printf("num is 10\n");
8
break;
9
default:
10
printf("num is not 10 or 20\n");
11
break;
12
}
13
return 0;
14
}
コメント