カテゴリ: C言語 更新日: 2026/01/24

C言語の定数をもっと便利に!列挙型enumの基本と使い方を初心者向けに解説

C言語の列挙型(enum)を定数として利用する方法
C言語の列挙型(enum)を定数として利用する方法

先生と生徒の会話形式で理解しよう

生徒

「数字の定数をたくさん使うコードがあると、どれが何を意味するのか分からなくなります…。」

先生

「そんなときに役立つのがC言語の列挙型(えつじょがた)、つまりenumです。名前付きの定数をまとめて扱える便利な機能ですよ。」

生徒

「名前付きの定数って何ですか?数値じゃないんですか?」

先生

「数値は数値ですが、扱うときは名前で使えるので、とても分かりやすくなります。では具体的に説明していきましょう。」

1.C言語の列挙型enumとは?

1.C言語の列挙型enumとは?
1.C言語の列挙型enumとは?

C言語の列挙型enum(えつじょがた)とは、複数の定数に名前をつけてまとめるための仕組みです。定数とは、値が変わらない変数のような役割を持つもので、設定値やメニュー番号などに使われます。通常は#defineで数字を定義しますが、数が増えたり意味を忘れると読みづらくなります。

そこでenumを使えば、「1は春」「2は夏」といったように、数字に名前がつくことでプログラムの意味がとても分かりやすくなります。初心者でも読みやすいプログラムを書くために、列挙型は欠かせない要素になります。

2.列挙型を使うと何が嬉しいのか?

2.列挙型を使うと何が嬉しいのか?
2.列挙型を使うと何が嬉しいのか?

列挙型を使う最大のメリットは、数字を覚えなくても名前で処理できることです。例えば、ゲームでキャラクターの職業を判定するとします。数字のままでは意味が分かりませんが、列挙型なら次のように書けます。


enum JOB {
    WARRIOR,
    MAGE,
    THIEF
};

こうしておけば、WARRIORと書くだけで「戦士」という意味が伝わります。コードを読む人が迷わず理解できるので、バグも減ります。会社や学校で複数人で開発するときにも、とても便利です。

3.実際にenum定数を使ってみよう

3.実際にenum定数を使ってみよう
3.実際にenum定数を使ってみよう

それでは、季節を判定するプログラムを例にします。季節を数字で管理すると「1はなに?2はなに?」と悩みますが、enumなら名前だけで理解できます。


#include <stdio.h>

enum SEASON {
    SPRING,
    SUMMER,
    AUTUMN,
    WINTER
};

int main() {
    enum SEASON now = SUMMER;

    if (now == SUMMER) {
        printf("今は夏です。\n");
    }
    return 0;
}

今は夏です。

この例では、SUMMERという名前を使うだけで、季節を判定できます。数字を覚える必要がないので初心者でも理解しやすく、プログラムの読みやすさも向上します。

4.enumで値を指定できるって知ってた?

4.enumで値を指定できるって知ってた?
4.enumで値を指定できるって知ってた?

列挙型は、自動的に0から順番に数字が割り当てられます。例えば、最初の値は0、次は1、その次は2というように連続します。しかし、自分で数字を指定することもできます。例えば、学校の点数評価を「良い」「普通」「悪い」に分けたい場合、次のようにします。


enum RESULT {
    GOOD = 80,
    NORMAL = 50,
    BAD = 0
};

このようにすると、GOODは80点以上、NORMALは50点以上、BADは0点という意味で使えるようになります。値を後から確認するときも、名前を見るだけで直感的に理解できます。

5.switch文と組み合わせると最強に使いやすい

5.switch文と組み合わせると最強に使いやすい
5.switch文と組み合わせると最強に使いやすい

列挙型はswitch文と非常に相性が良いです。条件分岐を分かりやすく書けるので、メニュー選択や状態管理によく使われます。身近な例として、信号機を判定するプログラムを考えてみましょう。


#include <stdio.h>

enum SIGNAL {
    RED,
    YELLOW,
    GREEN
};

int main() {
    enum SIGNAL lamp = YELLOW;

    switch (lamp) {
        case RED:
            printf("止まりましょう。\n");
            break;
        case YELLOW:
            printf("注意して進みましょう。\n");
            break;
        case GREEN:
            printf("進んでください。\n");
            break;
    }
    return 0;
}

注意して進みましょう。

このように、列挙型を組み合わせることで、可読性が高く安全なプログラムになります。数字で管理していると2は何だっけ?と毎回確認する必要がありますが、名前がついていると意味がはっきりします。

6.実はデバッグにも役立つ

6.実はデバッグにも役立つ
6.実はデバッグにも役立つ

プログラムの動きを確認するとき、数字のままでは何を示しているか分かりにくいです。しかしenumなら、名前を見れば意図が理解できます。これは初心者だけでなく、プロの現場でも大きなメリットです。

例えば大きなシステムやゲーム開発では、キャラクターの状態、エラー番号、画面遷移など、多くの種類を番号で管理しています。列挙型を使うだけで、理解ミスや記述ミスを大きく減らせます。

7.覚えておくポイント

7.覚えておくポイント
7.覚えておくポイント

列挙型は、C言語の中でも定数を名前で管理できる貴重な仕組みです。読みやすく、分かりやすく、安全なコードを書くために非常に役立ちます。初心者のうちから習慣として使うことで、後のプログラム学習がスムーズになります。

関連記事:
カテゴリの一覧へ
新着記事
New1
C++
C++のメンバアクセス演算子を完全解説!初心者でもわかる . → :: の使い方まとめ
New2
Rust
Rustの文字列を極める!&str(文字列スライス)の基本概念とString型との違い
New3
C++
C++のキャスト演算子を完全解説!dynamic_cast・static_cast・const_cast・reinterpret_castを初心者向けに説明
New4
C++
C++開発のIDE選びを完全ガイド!初心者でもわかるCLion・Eclipse CDT・Qt Creator比較
人気記事
No.1
Java&Spring記事人気No1
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.2
Java&Spring記事人気No2
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.3
Java&Spring記事人気No3
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.4
Java&Spring記事人気No4
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.5
Java&Spring記事人気No5
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.6
Java&Spring記事人気No6
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.7
Java&Spring記事人気No7
C言語
C言語の列挙型(enum)の使い方を完全ガイド!初心者でもわかる基本操作
No.8
Java&Spring記事人気No8
C++
C++リンカとコンパイラのオプション設定を完全ガイド!初心者にもわかる開発環境の基礎