列挙

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

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 Visual COBOL > Samples , under COBOL for JVM (Windows) or $COBDIR/demo (UNIX). に用意されています。

その他の情報

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

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

  • あらかじめ定義されたいずれかの型の単一数値フィールド。デフォルトでは binary-long になります。
  • 列挙の値を定義する任意の数のレベル 78 項目。最初の項目のデフォルト値は 0 で、以降の項目の値はデフォルトで増分されます。
注: COBOL for JVM では、Java と同様に、列挙宣言で列挙クラスが定義されます。このクラスは、java.lang.Enum から派生するクラスです。Java では、この列挙クラスはメソッドおよびその他のフィールドをユーザーが明示的に宣言できますが、COBOL では許容されません。