列挙型(enum)の基礎:初学者向け解説とサンプルコード
1. 列挙型(enum)とは?
列挙型は、 関連する値を一つにまとめて管理する仕組み です。
例えば、曜日やキャラクターの職業など、限られた選択肢をプログラムで扱うときに使います。
数字や文字列を直接使うのではなく、名前で分かりやすく扱える のが特徴です。
2. サンプルコード:曜日を表す列挙型
using System;
// 曜日を表す列挙型
enum DayOfWeek
{
Sunday, // 0
Monday, // 1
Tuesday, // 2
Wednesday, // 3
Thursday, // 4
Friday, // 5
Saturday // 6
}
class Program
{
static void Main()
{
// 1. 今日の曜日を設定
DayOfWeek today = DayOfWeek.Wednesday;
// 2. 曜日を表示
Console.WriteLine($"今日は {today} です。"); // -> 今日は Wednesday です。
// 3. 数値として曜日を確認
int dayNumber = (int)today;
Console.WriteLine($"今日は {dayNumber} 日目です。"); // -> 今日は 3 日目です。
// 4. 条件分岐で使う
if (today == DayOfWeek.Wednesday)
{
Console.WriteLine("週の真ん中ですね。頑張りましょう!");
}
}
}
3. コードのポイント
1. 列挙型を定義する
enum DayOfWeek
{
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
}
- 目的: 曜日をプログラムで扱いやすくするために、名前を定義。
- 数値の代わりに
Monday
やFriday
など 分かりやすい名前 を使える。
2. 列挙型を変数に代入
DayOfWeek today = DayOfWeek.Wednesday;
- 列挙型を変数に格納することで、「今日が何曜日か」を管理できます。
3. 値を表示する
Console.WriteLine($"今日は {today} です。");
- 列挙型の値をそのまま表示すると、名前(例:
Wednesday
)が出力されます。
4. 数値として扱う
int dayNumber = (int)today;
- 列挙型を 数値に変換 する場合は
(int)
を使います。 - 例えば、
Wednesday
は列挙型内で 3 番目なので数値3
に変換されます。
5. 条件分岐で使う
if (today == DayOfWeek.Wednesday)
{
Console.WriteLine("週の真ん中ですね。頑張りましょう!");
}
- 列挙型の値を条件として使うことで、プログラムの流れを分岐できます。
4. 列挙型を使うメリット
- コードが読みやすい
DayOfWeek.Monday
の方が1
より直感的です。
- エラーを減らせる
- 列挙型以外の値(例: 文字列
Funday
)は指定できません。
- 列挙型以外の値(例: 文字列
- 変更に強い
- 列挙型を変更しても、プログラム全体に影響しにくいです。
5. 練習問題
課題1: 季節を表す列挙型
自分で季節(春、夏、秋、冬)を表す列挙型を定義し、現在の季節に応じてメッセージを表示するプログラムを書いてみましょう。
課題2: ゲームキャラクターの職業
ゲームキャラクターの職業(例: 戦士、魔法使い、弓使い)を列挙型で定義し、選択した職業に応じたメッセージを表示するプログラムを作成してみてください。
6. まとめ
列挙型は、 「限られた選択肢」 を管理するのに便利な仕組みです。
これを使うことで、コードが読みやすくなり、エラーも減らせます。
まずは、簡単な例から始めて、自分で応用できるように練習してみましょう!
ディスカッション
コメント一覧
まだ、コメントがありません