enum 列挙型

enumは、列挙型を定義する際に使用します。列挙型は次のように定義します。

enum 列挙型名
{
   定数1,
   定数2,
   ...
};

{}括弧内の,カンマ区切りで宣言されたそれぞれの定数はint型の値を持ち、値が指定されていない場合は自動的に値が割り当てられます。最初の定数に値が指定されていない場合はその定数の値は0となります。2つ目以降の定数に値が指定されていない場合は前の定数の値に1を足した値となります。

サンプルコード

enum week      // week型を定義
{
   Sunday,     // 定数Sundayを宣言 値は0
   Monday,     // 定数Mondayを宣言 値は1
   Tuesday,    // 定数Tuesdayを宣言 値は2
   Wednesday,  // 以下、同様
   Thursday,
   Friday,
   Saturday    // 定数Saturdayを宣言 値は6
};

// week型の変数todayを宣言 初期値Monday
week today = Monday;
enum month     // month型を定義
{
   January = 1,// 定数Januaryを宣言 値は1
   February,   // 定数Februaryを宣言 値は2
   March,      // 以下、同様
   April, May, June, July, August,// 改行無し列挙
   September, October, November,
   December    // 定数Decemberを宣言 値は12
};

列挙型の利点(メリット)

にゃんたにゃんた

列挙型にして何か良い事あるのかにゃ?

Dr.EADr.EA

外部パラメーターを列挙型で宣言すると選択形式になるのじゃ。次のサンプルのように//コメントで日本語文字を選択肢にすることもできるぞい!

// スクリプトファイルのコード
#property strict
#property show_inputs

enum trade_mode
{
   buy,           // 買いのみ
   sell,          // 売りのみ
   buy_or_sell,   // 両建てなし
   buy_and_sell   // 両建てあり
};

extern trade_mode TradeMode = buy; // トレードモード

void OnStart()
{
   Print(TradeMode);
}

enum パラメーター