COBOL2002 言語 拡張仕様編
-StdVersionオプションを指定した場合,次の書き方のとき,標準仕様のPERFORM文の規則と異なる。
- 形式
- (備考)
- 次の言語要素は,第2次以前の規格にはなかったが,このシステムでは-StdVersionオプション指定時にも書くことができる。
- (a)うちPERFORM文(手続き名を省略し,無条件文END-PERFORMを書く)
- (b)WITH TEST BEFORE/AFTER指定
- (c)AFTER指定の3回以上の繰り返し記述
- 一般規則
- 次に,標準仕様のPERFORM文と異なる規則だけ説明する。
- PERFORM文の実行中に,条件2(内側のループの終了条件)が成立すると,次の順に実行される。
(i)一意名4など(内側のループの制御変数)を,一意名5などの値で再初期化する。
(ii)一意名1など(外側のループの制御変数)を,一意名3などの値で増加させる。
- PERFORM文の実行中に,条件3(内側のループの終了条件)が成立すると,次の順に実行される。
(i)一意名7など(内側のループの制御変数)を,一意名8などの値で再初期化する。
(ii)一意名4など(外側のループの制御変数)を,一意名6などの値で増加させる。
(注意)
-StdVersionオプション未指定時には,上記の(i)〜(ii)の順番が入れ替わる。
(例1)
01 J PIC 99 COMP.
01 K PIC 99 COMP.
01 WK-1.
02 WK-2 OCCURS 4.
03 WK-3 PIC X OCCURS 4.
:
MOVE SPACE TO WK-1.
PERFORM PROC-1
VARYING J FROM 1 BY 1 UNTIL J > 4
AFTER K FROM J BY 1 UNTIL K > 4,
:
PROC-1.
MOVE '*' TO WK-3(J,K)
-
- 上記の(例1)のPERFORM文の流れを次に示す。
図23-1 PERFORM文の流れ
- -StdVersionオプションを指定して,PERFORM文を実行すると,「*」の転記は次のとおりに行われる。
- 同じ例を,-StdVersionオプションを指定しないで実行すると,「図23-1 PERFORM文の流れ」中の(i)と(ii)の処理の順番が入れ替わる。このとき,PERFORM文の実行の結果,「*」の転記は次のとおりに行われる。
- -StdVersionオプション未指定時の仕様は,次に示す例2のうちPERFORM文と同じである。
- (例2)
-
PERFORM VARYING J FROM 1 BY 1 UNTIL J > 4
PERFORM VARYING K FROM J BY 1 UNTIL K > 4
MOVE '*' TO WK-3(J,K)
END-PERFORM
END-PERFORM.
-
- 【標準仕様との関連】
- COBOL2002 言語 標準仕様編 10.8.31 PERFORM文
All Rights Reserved. Copyright (C) 2003, 2013, Hitachi, Ltd.