【C言語】 列挙型

列挙型
 列挙型とは識別子を値としいて格納できる型列挙定数と言い、この定数は自動的に値が割り振られます​​
列挙型 の 取り扱い方
 
列挙には、型と変数の宣言が必要です。
  

  • 列挙型の宣言 ​
    enum タグ名 { 名前, 名前, 名前, ・・・}; ​
    enum week { SUN, MON, TUE, WED, THU, FRI, SAT };

    通常は0 から順に定数に整数値を与えられます
     「SUN=0, MON=1, TUE=2, WED=3, THU=4, FRI=5, SAT=6」​

    値を指定する場合には、
     enum week { SUN=10, MON=20, TUE=30,
               WED=40, THU=50, FRI=60, SAT=70 }; ​
        「=」で値を指定すれば、希望の値にすることが出来ます。

    また、列挙定数は1つ前に指定された値+1を持ちますので、​
     enum week { SUN=1, MON, TUE, WED, THU, FRI, SAT };
      「SUN=1, MON=2, TUE=3, WED=4, THU=5, FRI=6, SAT=7」​
        

  • 列挙型変数の宣言 ​
    enum week w;
    タグ名 変数名;
                 

列挙型 の実行例
   
switch文と列挙型を組み合わせることで値を用いるより、列挙型の変数を用いた方が分かりやすくなります。
 

《 test042.c 》

#include <stdio.h>
enum week {SUN, MON, TUE, WED, THU, FRI, SAT};
int main(){
enum week w;
printf( "曜日を入力しなさい" );
scanf( "%d", &w);
switch( w ) {
case SUN:printf( "日曜日です\n" );break;
case MON:printf( "月曜日です\n" );break;
case TUE:printf( "火曜日です\n" );break;
case WED:printf( "水曜日です\n" );break;
case THU:printf( "木曜日です\n" );break;
case FRI:printf( "金曜日です\n" );break;
case SAT:printf( "土曜日です\n" );break;
default:printf( "エラーです\n" );
}
}
  
結果 
         曜日を入力しなさい
         金曜日を表示したいなら、5を入力

 

目次