【C言語】duplicate case value

“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;
}

コメント

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