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