<C言語>列挙型
今回の記事でわかること
- 列挙型の使い方が分かる
- 定数をまとめて管理する方法が分かる
- if や switch での使い方が理解できる
列挙型とは
列挙型(enum)は、複数の定数をまとめて管理するための型です
例えば、曜日やゲームの応対など、限られた選択肢を名前で表現したいときに便利です
#include <stdio.h>
enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };
int main(void) {
enum Weekday today = WEDNESDAY;
printf("今日は %d 日目の曜日です\n", today);
return 0;
}
/*出力結果
今日は 3 日目の曜日です
*/
列挙型では最初の値は0からスタートし、値は順番に1つずつ増えます(必要なら自分で指定も可能)
値を自分で指定する
#include <stdio.h>
enum Weekday { SUNDAY = 1, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };
int main(void) {
enum Weekday today = WEDNESDAY;
printf("今日は %d 日目の曜日です\n", today);
return 0;
}
/*出力結果
今日は 4 日目の曜日です
*/
この場合、SUNDAY が1、MONDAY が2…のように値が設定されます
switch 分で使う例
列挙型と switch を組み合わせると、値に応じた処理を分かりやすく書けるようになります
#include <stdio.h>
enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };
int main(void) {
enum Weekday today = FRIDAY;
switch(today) {
case MONDAY:
printf("月曜日です\n");
break;
case FRIDAY:
printf("金曜日です!\n");
break;
default:
printf("その他の曜日です\n");
}
return 0;
}
/*出力結果
金曜日です!
*/
switch の case に列挙型の値を直接指定でき、コードが読みやすく間違えにくくなります
列挙型を使うメリット
- 定数をまとめて管理できる
- 名前で意味が分かるので可読性アップ
- 間違った値を入れるミスを減らせる