列挙型
列挙型とは識別子を値としいて格納できる型列挙定数と言い、この定数は自動的に値が割り振られます
列挙型 の 取り扱い方
列挙には、型と変数の宣言が必要です。
-
列挙型の宣言
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」
列挙型 の実行例
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を入力