【C言語】switch quantity not an integer

C言語で「switch quantity not an integer」というエラーメッセージが表示された場合、それはswitch文の分岐条件の値が整数型ではないということを意味します。

例えば、次のようなコードでこのエラーが発生する可能性があります。

#include <stdio.h>

int main(void) {
  switch (3.14) { // エラーが発生する行
    case 1:
      printf("one\n");
      break;
    case 2:
      printf("two\n");
      break;
    default:
      printf("other\n");
      break;
  }
  return 0;
}

この例では、switch文の分岐条件として実数値の3.14が使用されていますが、switch文では分岐条件の値は整数型である必要があります。このような場合、コンパイラは「switch quantity not an integer」というエラーメッセージを出力します。

このような場合、switch文の分岐条件の値を整数型に変換するようにプログラムを修正することで、このエラーは解消されます。

#include <stdio.h>

int main(void) {
  switch (3) { // 修正後
    case 1:
      printf("one\n");
      break;
    case 2:
      printf("two\n");
      break;
    default:
      printf("other\n");
      break;
  }
  return 0;
}

この例では、switch文の分岐条件として整数値の3が使用されるように修正されました。これにより、switch文の分岐条件の値が整数型であることが保証され、エラーが解消されます。

コメント

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