列挙

列挙は、曜日の値などの定数値のリストを表します。その値やシンボリック名を定義する列挙型を宣言できる。その後、値を名前別に参照できます。

enum-specification

enum-header type-specifier enum-constant

enum-header

access-modifier attribute-clause

enum-constant

type-specifier

enum-id Action.
   78 #Start.   *> Start is a reserved word so use '#' symbol
   78 #Stop.
   78 #Rewind.
   78 #Forward.
end enum.

enum-id Status.
   78 Flunk value 50.
   78 Pass  value 70.
   78 Excel value 90.
end enum.

class-id MainClass.
method-id main static.
   declare a = type Action::Stop
   if a not = type Action::Start
       display a & " is " & a as binary-long   *> Prints "Stop is 1"
    end-if
   display type Status::Pass as binary-long    *> prints 70
   display type Status::Pass *> prints 
end method.
end class.

列挙のサンプルも参照してください。このサンプルは、 Start > All Programs > Micro Focus Enterprise Developer > Samples > Visual COBOL Samples, under COBOL for .NET. に用意されています。

その他の情報

コンパイラは、列挙の値を含む配列を返す「values」という静的メソッドを追加します。このメソッドを PERFORM THROUGH 定数と一緒に使用すると、列挙型の値を反復できます。

enum-header の後には、次の内容で構成される作業場所節が続きます。

  • あらかじめ定義されたいずれかの型の単一数値フィールド。デフォルトでは binary-long になります。
  • 列挙の値を定義する任意の数のレベル 78 項目。最初の項目のデフォルト値は 0 で、以降の項目の値はデフォルトで増分されます。
注: COBOL for .NET では、属性 System.FlagsAttribute を設定できます。列挙にこの属性を適用すると、ビット設定として各値は別個と見なされるため、値の組み合わせが可能になります。次に例を示します。
enum-id MyFlags attribute System.FlagsAttribute.