【C言語入門】列挙型(enum)の使い方

enumって使ってますか?

enumは列挙型といって、複数の変数に一連の整数値を付ける必要がある場合に使用すると便利です。例えばswitch-case文のcaseの値などに使用すると便利です。

この記事では、enumについて

  • 列挙型(enum)とは
  • enumの使い方
  • switch文でenumを使う方法

というように、基本的な内容から具体的な使い方の内容についても解説していきます。今回はenumについて、使い方をわかりやすく解説します!

列挙型(enum)とは

列挙型は、複数の変数に一連の整数値を付けると便利な場合に使用します。

列挙型で定義される変数はメンバと言います。デフォルトでは定義されたメンバの順に0(ゼロ)から整数値が付けられます。最初の値を0(ゼロ)以外で定義することも可能です。

また途中のメンバから付けられる整数値を変えることもできます。

enumの使い方

それではenumの使い方について解説していきます。

基本的な使い方

enumは下記のように定義します。

enumの定義:

定義したenumは下記のように宣言して使用します。

enumの宣言:

それではサンプルコードで確認していきましょう。

実行結果:

このサンプルコードでは、enum型「week」を定義しています。

そしてenum型「week」のオブジェクト「wk0」、「wk1」、「wk2」を宣言しています。「wk0」にはメンバ「Mon」を、「wk1」にはメンバ「Tue」を、「wk2」にはメンバ「Wed」を代入し、それぞれのオブジェクトの値を出力表示しています。

出力表示された結果を確認すると定義したメンバの順に0(ゼロ)から整数値が付けられているのがわかります。

typedefを使って定義、宣言する方法

enumもstructと同じようにtypedef句を使って定義、宣言することができます。

typedefを使ったenumの定義:

タグ名の記述は省略することもできます。typedefを使って定義したenumは下記のように宣言して使用します。

typedefを使った場合のenumの宣言:

それではサンプルコードで確認していきましょう。

実行結果:

このサンプルコードでは、typedef句を使ってenumのweek型を定義しています。

そしてweek型のオブジェクト「wk0」、「wk1」、「wk2」を宣言しています。「wk0」にはメンバ「Mon」を、「wk1」にはメンバ「Tue」を、「wk2」にはメンバ「Wed」を代入し、それぞれのオブジェクトの値を出力表示しています。

初期化する方法

これまではメンバを定義した順に0(ゼロ)から整数値が付けられていました。

最初のメンバに付ける整数値を定義することができます。また途中のメンバから付ける整数値を定義することもできます。

メンバに付ける整数値を定義する方法は下記のとおりです。

メンバに付ける整数値の定義:

それではサンプルコードで確認していきましょう。

実行結果:

このサンプルコードでは、enum型「week」を定義しています。

enum型「week」の最初のメンバ「Mon」に付ける整数値を1に定義しています。また、途中のメンバ「Sat」に付ける整数値を11に定義しています。

そしてenum型「week」のオブジェクト「wk1」、「wk2」、「wk3」、「wk11」、「wk12」を宣言しています。

「wk1」にはメンバ「Mon」を、「wk2」にはメンバ「Tue」を、「wk3」にはメンバ「Wed」を、「wk11」にはメンバ「Sat」を、「wk12」にはメンバ「Sun」を代入し、それぞれのオブジェクトの値を出力表示しています。

出力表示された結果を確認すると整数値1を定義したメンバから順に整数値が付けられているのがわかります。また、途中で整数値11を定義したメンバから順に整数値が付けられているのがわかります。

switch文でenumを使う方法

enumはswitch-case文とあわせてよく使われます。caseの値にenumのメンバを記述することで、場合分けの条件が読みやすくなるからです。

switch文でenumを使う方法についてはこちらで詳しく解説しているので参考にしてくださいね!

【C言語入門】switch-case文の使い方(数値、文字列で複数条件分岐)
更新日 : 2019年4月24日

まとめ

ここでは、enumの使い方について説明しました。enumはswitch-case文とあわせて使うとcaseの値にenumのメンバを記述することができて、場合分けの条件が読みやすくなるので便利です。

使いこなすことができるように、この記事を何度も参考にして下さいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

長野 透

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説