カテゴリ: Swift 更新日: 2026/02/02

SwiftのEnum(列挙型)を完全ガイド!初心者でもわかる使い方と実用例

Swift Enum(列挙型)の基本と実用例
Swift Enum(列挙型)の基本と実用例

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

生徒

「先生、Swiftの“Enum”ってなんですか?使い方がよくわかりません……」

先生

「Enumは日本語で“列挙型”と呼ばれていて、選択肢をまとめて管理するのに使われますよ。たとえば、曜日や天気など、決まったパターンの値を表現するのにぴったりです。」

生徒

「決まった選択肢があるときに使うんですね!使い方を詳しく知りたいです!」

先生

「それでは、SwiftのEnumの基本的な使い方と実用例をわかりやすく解説していきましょう。」

1. Enum(列挙型)とは?

1. Enum(列挙型)とは?
1. Enum(列挙型)とは?

Enum(列挙型)とは、「取りうる値の候補があらかじめ決まっているデータ」を安全に扱うためのSwiftの仕組みです。数値や文字列をそのまま使う代わりに、意味のある名前を付けて管理できるのが大きな特徴です。

たとえば、「北・南・東・西」の方角や、「晴れ・雨・曇り」といった天気のように、選択肢が決まっている場合にEnumが活躍します。これらをEnumとして定義しておくことで、存在しない値が入り込むのを防げます。

特にプログラミング未経験者の方にとっては、「使っていい値が最初から決まっている」という点が安心材料になります。入力ミスによるバグを減らし、コードの意味も読み取りやすくなるため、初心者こそ積極的に使いたい機能です。

まずは、「決まった選択肢を1つ選ぶ場面ではEnumを使う」と覚えておくとよいでしょう。


enum Weather {
    case sunny
    case rainy
    case cloudy
}

let todayWeather = Weather.sunny
print("今日の天気は晴れです")

この例では、「天気」という決まった選択肢をEnumで表現しています。Weather型の変数には、sunnyrainycloudyのいずれかしか入らないため、安心して扱うことができます。

2. Enumの基本的な書き方

2. Enumの基本的な書き方
2. Enumの基本的な書き方

SwiftのEnum(列挙型)は、あらかじめ決められた選択肢の中から「どれか一つ」を安全に扱うための仕組みです。プログラミング未経験の方でも、「決まった答えの中から選ぶ箱」と考えるとイメージしやすいです。

例えば「方向」を表したい場合、自由な文字列ではなく、使える値を最初から決めておくことで、入力ミスや想定外の値を防げます。


enum Direction {
    case north
    case south
    case east
    case west
}

let myDirection = Direction.north

enumキーワードを使ってDirectionという名前のEnumを定義し、その中にnorthsouthなどの選択肢(case)を書いていきます。

使うときはDirection.northのように指定します。これにより、「方向には定義した値しか入らない」というルールをSwiftが自動で守ってくれるため、初心者でも安心してコードを書けるのが特徴です。

3. 実行例を見てみよう

3. 実行例を見てみよう
3. 実行例を見てみよう

ここでは、enum(列挙型)switch文を使った、非常にシンプルな実行例を見てみましょう。 プログラミングが初めての方でも、「値によって処理が変わる」という基本的な考え方がイメージできる内容になっています。

今回は「どの方向に進むか」を表す Direction という値を使い、 指定された方向に応じて表示するメッセージを切り替えています。 switch文を使うことで、条件ごとに処理を分けて書けるのがポイントです。


func move(to direction: Direction) {
    switch direction {
    case .north:
        print("北に進みます")
    case .south:
        print("南に進みます")
    case .east:
        print("東に進みます")
    case .west:
        print("西に進みます")
    }
}

let direction = Direction.east
move(to: direction)

上のコードでは、Direction.east を指定しているため、 実行すると「東に進みます」と表示されます。 このように、値を1つ変えるだけで動作が変わるのがswitch文の分かりやすい特徴です。

初心者の方は、「direction に何が入っているかによって、表示内容が決まる」 という点だけ押さえておけば大丈夫です。 実際のアプリ開発でも、選択肢ごとの処理を分けたい場面でよく使われます。

4. 実行結果を確認しよう

4. 実行結果を確認しよう
4. 実行結果を確認しよう

東に進みます

このように、Enumを使えば選択肢をしっかり管理しながら、分岐処理もスッキリ書くことができます。

5. よく使う場面

5. よく使う場面
5. よく使う場面

SwiftのEnumは、以下のような場面でよく使われます。

  • アプリの状態管理(ログイン中・ログアウト中など)
  • ボタンの種類(追加・削除・編集など)
  • APIのレスポンスの種類(成功・失敗など)
  • 画面の切り替え(ホーム・設定・プロフィールなど)

選択肢が決まっているデータを使いたいときには、まずEnumを検討してみると良いでしょう。

6. Enumに値を持たせる「Raw Value」

6. Enumに値を持たせる「Raw Value」
6. Enumに値を持たせる「Raw Value」

Enumには、値(Raw Value)を割り当てることもできます。たとえば、曜日に文字列を割り当てたいときに使います。


enum Weekday: String {
    case monday = "月曜日"
    case tuesday = "火曜日"
    case wednesday = "水曜日"
    case thursday = "木曜日"
    case friday = "金曜日"
}

let today = Weekday.wednesday
print("今日は \(today.rawValue) です")

7. 実行結果の例

7. 実行結果の例
7. 実行結果の例

今日は 水曜日 です

rawValueを使うことで、Enumの中に設定した値を簡単に取り出すことができます。

8. 関連値(Associated Value)も使える

8. 関連値(Associated Value)も使える
8. 関連値(Associated Value)も使える

SwiftのEnumは、関連値(Associated Value)も持たせることができます。これは、それぞれのケースに対して追加の情報を持たせたいときに使います。


enum LoginState {
    case loggedIn(userName: String)
    case loggedOut
}

let currentState = LoginState.loggedIn(userName: "太郎")

switch currentState {
case .loggedIn(let userName):
    print("\(userName) さんがログイン中です")
case .loggedOut:
    print("ログアウト状態です")
}

9. 関連値の実行結果

9. 関連値の実行結果
9. 関連値の実行結果

太郎 さんがログイン中です

このように、Enumの各ケースに「値をひもづける」ことで、より柔軟なデータの表現が可能になります。

10. なぜEnumを使うと便利なのか?

10. なぜEnumを使うと便利なのか?
10. なぜEnumを使うと便利なのか?

SwiftでEnum(列挙型)を使うメリットはたくさんあります。

  • 選択肢を限定できる:無効な値が入りにくく、バグを防げます。
  • 可読性が高い:どんな種類のデータか一目で分かります。
  • 保守しやすい:変更や追加がしやすく、コードの管理が簡単です。
  • 安全に型で管理できる:Swiftの型安全な仕組みによって、ミスを未然に防げます。

初心者でも扱いやすく、実務でもよく使われる重要な機能なので、ぜひしっかり理解しておきましょう。

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

まとめ

まとめ
まとめ

SwiftのEnum(列挙型)は、あらかじめ決まっている選択肢を安全に扱えるようにする、とても便利で柔軟な構文です。曜日や天気のような明確なパターンを表す場合だけでなく、アプリの画面遷移や状態管理、ボタンの種類など、実際の開発で幅広い場面に登場します。列挙型を使えば、誤った値が入り込むことを避け、コード全体の見通しも良くなり、保守性も高まります。また、Raw Valueを使えば文字列や数字を紐づけられ、Associated Valueを使えば個別のケースに必要な情報を柔軟に付与できるため、データ表現の精度が飛躍的に高まります。 さらにEnumはswitch構文との相性が良く、分岐処理を簡潔かつ強力にしてくれる点も特徴です。特定の処理をケースごとに明確に書けるため、条件分岐を安全に管理でき、予測しやすいコードとなります。Enumの各ケースを通じて流れを整理しながら設計することで、複雑な処理も自然と読みやすく整理され、Swiftの型安全性を最大限に活かした実装に繋がります。初心者にとっても理解しやすく、慣れてくるとアプリ設計の幅が大きく広がっていきます。 また、Raw ValueやAssociated Valueを併用することで、より現実的なデータ構造を表現できる点も重要です。設定画面のモード切り替え、ログイン状態の管理、サーバーから返されたレスポンスの分岐など、実践的な場面においてEnumは必ずといっていいほど利用されます。設計の段階で列挙型を考慮しておくと、後からの拡張や修正もスムーズになり、コード全体の整合性を保ちながら機能追加が可能になります。次のサンプルでは、Raw Valueと関連値を含めた応用的なEnumの使い方を実例としてまとめています。

サンプルプログラム:Raw ValueとAssociated Valueを併用したEnumの実例


enum AppState {
    case home
    case settings
    case profile(userName: String)
}

enum Weather: String {
    case sunny = "晴れ"
    case rainy = "雨"
    case cloudy = "曇り"
}

func displayState(_ state: AppState) {
    switch state {
    case .home:
        print("ホーム画面を表示します")
    case .settings:
        print("設定画面を開きます")
    case .profile(let userName):
        print("\(userName) さんのプロフィールを表示します")
    }
}

let current = AppState.profile(userName: "花子")
displayState(current)

let weatherToday = Weather.sunny
print("今日の天気は \(weatherToday.rawValue) です")

このコードでは、アプリの画面状態をEnumで表現し、プロフィールのように追加情報が必要なケースには関連値(Associated Value)を持たせています。また、天気の種類にはRaw Valueを設定することで、文字列として簡単に取り出すことができています。Enumを使うことで、複雑に見える状態管理も整理しやすく、変更や機能追加にも強い構造を作りやすくなります。実際のアプリ設計でも、画面構成や状態遷移をEnumで管理するのは一般的であり、SwiftのEnumの強力さが特に活きるポイントです。 SwiftのEnumは、ただの選択肢を並べるだけではなく、柔軟に値を持たせられたり、型安全に管理できたりと、実践的なアプリ構築に非常に向いています。複数の処理をまとめて扱う際にも、Enumを中心に設計することで、開発者が迷いにくく、読み手にも優しいコードが書けるようになります。今回学んだ基礎と応用の活用方法を意識しながら、より高度な設計にも挑戦してみてください。

先生と生徒の振り返り会話

生徒

「Enumって思っていたより深いんですね。ただ選択肢を並べるだけじゃなくて、値を持たせたり情報を付けたりできるとは驚きました!」

先生

「そうでしょう。特にAssociated Valueは、選択肢に応じて追加データが必要なときにとても便利で、実務でもよく使う仕組みなんですよ。」

生徒

「Raw Valueも便利ですね。文字列をそのまま使えるから、表示やログに活用できそうです!」

先生

「その通り。Enumをうまく使うことでバグも減り、コードの見通しもよくなります。特に状態管理に使うと、アプリの動きが把握しやすくなるんです。」

生徒

「今日の内容で、EnumがSwiftの設計に欠かせない存在だとよく分かりました。いろいろ応用してみたいです!」

先生

「ぜひ試してごらん。Enumを理解するとアプリ開発の幅がぐんと広がるからね。これからも一緒に学んでいきましょう。」

関連セミナーのご案内

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。

Windowsで実現する開発環境

【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。

【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。

この60分で得られる3つの理解

1. WindowsでのSwift実行環境の作り方

OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。

2. Swiftの基本構造(変数・型・定数)

iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。

3. アプリエンジニアとしてのロードマップ

将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。

※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。

セミナー画像

Windowsで始めるiPhoneアプリ開発入門

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.7
Java&Spring記事人気No7
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.8
Java&Spring記事人気No8
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説